retropilot-server/cabana/beaf0312537cf2a84ceb.worker...

1 line
3.7 MiB
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

{"version":3,"sources":["../webpack/bootstrap","../node_modules/debug/src/browser.js","../node_modules/capnp-ts/lib/serialization/pointers/pointer.js","../node_modules/tslib/tslib.es6.js","../node_modules/capnp-ts/lib/serialization/list-element-size.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/capnp-ts/lib/serialization/pointers/list.js","../node_modules/buffer/index.js","../node_modules/webpack/buildin/global.js","../node_modules/ap/index.js","../node_modules/process/browser.js","../node_modules/capnp-ts/lib/errors.js","../node_modules/capnp-ts/lib/util.js","../node_modules/core-js/library/modules/_global.js","../node_modules/capnp-ts/lib/constants.js","../node_modules/core-js/library/modules/_core.js","../node_modules/core-js/library/modules/_wks.js","utils/dbc.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@commaai/comma-api/dist/request.js","../node_modules/babel-runtime/regenerator/index.js","../node_modules/babel-runtime/helpers/asyncToGenerator.js","../node_modules/inherits/inherits_browser.js","../node_modules/core-js/library/modules/_an-object.js","../node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator/index.js","../node_modules/readable-stream/readable-browser.js","../node_modules/capnp-ts/lib/serialization/object-size.js","../node_modules/capnp-ts/lib/serialization/pointers/pointer-type.js","../node_modules/xtend/immutable.js","../node_modules/core-js/library/modules/_export.js","../node_modules/core-js/library/modules/_hide.js","../node_modules/core-js/library/modules/_iterators.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/defineProperty.js","models/can/logSignals.js","../node_modules/core-util-is/lib/util.js","../node_modules/capnp-ts/lib/index.js","../node_modules/capnp-ts/lib/serialization/pointers/pointer-list.js","../node_modules/core-js/library/modules/_ctx.js","../node_modules/core-js/library/modules/_object-dp.js","../node_modules/core-js/library/modules/_is-object.js","../node_modules/core-js/library/modules/_descriptors.js","models/can/frame.js","logging/LogEntries.js","../node_modules/process-nextick-args/index.js","../node_modules/node-libs-browser/node_modules/util/util.js","../node_modules/capnp-ts/lib/serialization/arena/arena-kind.js","../node_modules/pako/lib/utils/common.js","../node_modules/babel-runtime/core-js/promise.js","../node_modules/core-js/library/modules/es6.string.iterator.js","../node_modules/core-js/library/modules/_a-function.js","../node_modules/core-js/library/modules/_has.js","../node_modules/core-js/library/modules/_cof.js","../node_modules/function-bind/index.js","../node_modules/es-abstract/GetIntrinsic.js","../node_modules/@commaai/comma-api/dist/errorHandler.js","models/can/signal.js","../node_modules/stream-browserify/index.js","../node_modules/events/events.js","../node_modules/readable-stream/node_modules/safe-buffer/index.js","../node_modules/readable-stream/lib/_stream_writable.js","../node_modules/capnp-ts/lib/serialization/pointers/index.js","../node_modules/capnp-ts/lib/serialization/pointers/data.js","../node_modules/capnp-ts/lib/serialization/pointers/struct.js","../node_modules/capnp-ts/lib/types/index.js","../node_modules/capnp-ts/lib/serialization/pointers/text.js","../node_modules/object-assign/index.js","../node_modules/core-js/library/modules/_to-integer.js","../node_modules/core-js/library/modules/_defined.js","../node_modules/core-js/library/modules/_library.js","../node_modules/core-js/library/modules/_dom-create.js","../node_modules/core-js/library/modules/_property-desc.js","../node_modules/core-js/library/modules/_to-iobject.js","../node_modules/core-js/library/modules/_to-length.js","../node_modules/core-js/library/modules/_shared-key.js","../node_modules/core-js/library/modules/_set-to-string-tag.js","../node_modules/core-js/library/modules/web.dom.iterable.js","../node_modules/core-js/library/modules/_classof.js","../node_modules/core-js/library/modules/core.get-iterator-method.js","../node_modules/core-js/library/modules/_new-promise-capability.js","../node_modules/config-request/instance.js","../node_modules/has/src/index.js","../node_modules/is-callable/index.js","../node_modules/url-join/lib/url-join.js","../node_modules/querystringify/index.js","../node_modules/@commaai/comma-api/dist/config.js","../node_modules/url/url.js","models/can/BoardUnit.js","../node_modules/isarray/index.js","../node_modules/readable-stream/lib/_stream_readable.js","../node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/readable-stream/lib/_stream_transform.js","../node_modules/capnp-split/dist/buffer.js","../node_modules/@commaai/log_reader/src/event.js","../node_modules/capnp-ts/lib/serialization/arena/multi-segment-arena.js","../node_modules/capnp-ts/lib/serialization/arena/arena-allocation-result.js","../node_modules/capnp-ts/lib/serialization/arena/single-segment-arena.js","../node_modules/capnp-ts/lib/serialization/pointers/orphan.js","../node_modules/capnp-ts/lib/serialization/pointers/interface.js","../node_modules/capnp-ts/lib/types/uint64.js","../node_modules/capnp-ts/lib/serialization/pointers/void.js","../node_modules/geval/event.js","../node_modules/through2/through2.js","../node_modules/node-libs-browser/node_modules/assert/assert.js","../node_modules/pako/lib/zlib/adler32.js","../node_modules/pako/lib/zlib/crc32.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/core-js/library/modules/_iter-define.js","../node_modules/core-js/library/modules/_fails.js","../node_modules/core-js/library/modules/_shared.js","../node_modules/core-js/library/modules/_uid.js","../node_modules/core-js/library/modules/_enum-bug-keys.js","../node_modules/core-js/library/modules/_html.js","../node_modules/core-js/library/modules/_to-object.js","../node_modules/core-js/library/modules/_iter-call.js","../node_modules/core-js/library/modules/_is-array-iter.js","../node_modules/core-js/library/modules/_species-constructor.js","../node_modules/core-js/library/modules/_task.js","../node_modules/core-js/library/modules/_perform.js","../node_modules/core-js/library/modules/_promise-resolve.js","../node_modules/core-js/library/modules/_iter-detect.js","../node_modules/strict-uri-encode/index.js","../node_modules/is-function/index.js","../node_modules/define-properties/index.js","../node_modules/object-keys/isArguments.js","../node_modules/string.prototype.trim/implementation.js","../node_modules/string.prototype.trim/polyfill.js","../node_modules/xtend/mutable.js","../node_modules/is-error-code/index.js","../node_modules/babel-runtime/core-js/number/is-finite.js","../node_modules/@commaai/comma-api/dist/config-request-promise.js","../node_modules/global/document.js","../node_modules/stream-http/index.js","../node_modules/stream-http/lib/capability.js","../node_modules/stream-http/lib/response.js","../node_modules/webpack/buildin/module.js","../node_modules/querystring-es3/index.js","../node_modules/@commaai/log_reader/index.js","../node_modules/thyming/index.js","../node_modules/@commaai/comma-api/dist/index.js","../node_modules/@commaai/my-comma-auth/dist/index.js","../node_modules/simple-get/index.js","models/can/dbc.js","../node_modules/right-pad/rightpad.js","logging/CloudLog.js","../node_modules/randomcolor/randomColor.js","config.js","utils/url.js","../node_modules/@commaai/log_reader/src/decompress.js","../node_modules/@commaai/log_reader/src/reader.js","../node_modules/capnp-split/dist/index.js","../node_modules/capnp-split/dist/stream.js","../node_modules/base64-js/index.js","../node_modules/ieee754/index.js","../node_modules/readable-stream/lib/internal/streams/BufferList.js","../node_modules/timers-browserify/main.js","../node_modules/setimmediate/setImmediate.js","../node_modules/util-deprecate/browser.js","../node_modules/safe-buffer/index.js","../node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/readable-stream/writable-browser.js","../node_modules/readable-stream/duplex-browser.js","../node_modules/readable-stream/transform.js","../node_modules/readable-stream/passthrough.js","../node_modules/node-libs-browser/node_modules/util/support/isBufferBrowser.js","../node_modules/node-libs-browser/node_modules/inherits/inherits_browser.js","../node_modules/capnp-ts/lib/serialization/index.js","../node_modules/capnp-ts/lib/serialization/mask.js","../node_modules/capnp-ts/lib/serialization/message.js","../node_modules/debug/src/debug.js","../node_modules/ms/index.js","../node_modules/capnp-ts/lib/serialization/arena/index.js","../node_modules/capnp-ts/lib/serialization/arena/arena.js","../node_modules/capnp-ts/lib/serialization/packing.js","../node_modules/capnp-ts/lib/serialization/pointers/any-pointer-list.js","../node_modules/capnp-ts/lib/serialization/pointers/pointer-allocation-result.js","../node_modules/capnp-ts/lib/serialization/pointers/bool-list.js","../node_modules/capnp-ts/lib/serialization/pointers/composite-list.js","../node_modules/capnp-ts/lib/serialization/pointers/data-list.js","../node_modules/capnp-ts/lib/serialization/pointers/float32-list.js","../node_modules/capnp-ts/lib/serialization/pointers/float64-list.js","../node_modules/capnp-ts/lib/serialization/pointers/int8-list.js","../node_modules/capnp-ts/lib/serialization/pointers/int16-list.js","../node_modules/capnp-ts/lib/serialization/pointers/int32-list.js","../node_modules/capnp-ts/lib/serialization/pointers/int64-list.js","../node_modules/capnp-ts/lib/serialization/pointers/interface-list.js","../node_modules/capnp-ts/lib/types/int64.js","../node_modules/capnp-ts/lib/serialization/pointers/text-list.js","../node_modules/capnp-ts/lib/serialization/pointers/uint8-list.js","../node_modules/capnp-ts/lib/serialization/pointers/uint16-list.js","../node_modules/capnp-ts/lib/serialization/pointers/uint32-list.js","../node_modules/capnp-ts/lib/serialization/pointers/uint64-list.js","../node_modules/capnp-ts/lib/serialization/pointers/void-list.js","../node_modules/capnp-ts/lib/serialization/segment.js","../node_modules/@commaai/log_reader/capnp/log.capnp.js","../node_modules/@commaai/log_reader/capnp/car.capnp.js","../node_modules/@commaai/capnp-json/dist.js","../node_modules/@commaai/log_reader/node_modules/stream-selector/index.js","../node_modules/file-type/index.js","../node_modules/browserify-zlib/lib/index.js","../node_modules/browserify-zlib/lib/binding.js","../node_modules/pako/lib/zlib/zstream.js","../node_modules/pako/lib/zlib/deflate.js","../node_modules/pako/lib/zlib/trees.js","../node_modules/pako/lib/zlib/messages.js","../node_modules/pako/lib/zlib/inflate.js","../node_modules/pako/lib/zlib/inffast.js","../node_modules/pako/lib/zlib/inftrees.js","../node_modules/pako/lib/zlib/constants.js","../node_modules/wasm-bz2/stream.js","../node_modules/regenerator-runtime/runtime.js","../node_modules/wasm-bz2/index.js","../node_modules/wasm-bz2/libbz2/bzip2.js","../node_modules/path-browserify/index.js","../node_modules/weakmap-event/index.js","../node_modules/weakmap-shim/create-store.js","../node_modules/weakmap-shim/hidden-store.js","../node_modules/weakmap-event/object.js","../node_modules/weakmap-event/array.js","../node_modules/assert-function/index.js","../node_modules/@commaai/comma-api/dist/account.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime-module.js","../node_modules/babel-runtime/node_modules/regenerator-runtime/runtime.js","../node_modules/core-js/library/fn/promise.js","../node_modules/core-js/library/modules/_string-at.js","../node_modules/core-js/library/modules/_ie8-dom-define.js","../node_modules/core-js/library/modules/_to-primitive.js","../node_modules/core-js/library/modules/_redefine.js","../node_modules/core-js/library/modules/_iter-create.js","../node_modules/core-js/library/modules/_object-create.js","../node_modules/core-js/library/modules/_object-dps.js","../node_modules/core-js/library/modules/_object-keys.js","../node_modules/core-js/library/modules/_object-keys-internal.js","../node_modules/core-js/library/modules/_iobject.js","../node_modules/core-js/library/modules/_array-includes.js","../node_modules/core-js/library/modules/_to-absolute-index.js","../node_modules/core-js/library/modules/_object-gpo.js","../node_modules/core-js/library/modules/es6.array.iterator.js","../node_modules/core-js/library/modules/_add-to-unscopables.js","../node_modules/core-js/library/modules/_iter-step.js","../node_modules/core-js/library/modules/es6.promise.js","../node_modules/core-js/library/modules/_an-instance.js","../node_modules/core-js/library/modules/_for-of.js","../node_modules/core-js/library/modules/_invoke.js","../node_modules/core-js/library/modules/_microtask.js","../node_modules/core-js/library/modules/_user-agent.js","../node_modules/core-js/library/modules/_redefine-all.js","../node_modules/core-js/library/modules/_set-species.js","../node_modules/core-js/library/modules/es7.promise.finally.js","../node_modules/core-js/library/modules/es7.promise.try.js","../node_modules/xhr-request/index.js","../node_modules/xhr-request/node_modules/query-string/index.js","../node_modules/decode-uri-component/index.js","../node_modules/url-set-query/index.js","../node_modules/xhr-request/lib/ensure-header.js","../node_modules/xhr-request/lib/request-browser.js","../node_modules/xhr/index.js","../node_modules/xhr/node_modules/global/window.js","../node_modules/parse-headers/parse-headers.js","../node_modules/string.prototype.trim/index.js","../node_modules/function-bind/implementation.js","../node_modules/object-keys/index.js","../node_modules/object-keys/implementation.js","../node_modules/es-abstract/es5.js","../node_modules/es-abstract/helpers/assertRecord.js","../node_modules/es-abstract/helpers/isPropertyDescriptor.js","../node_modules/es-abstract/helpers/isNaN.js","../node_modules/es-abstract/helpers/isFinite.js","../node_modules/es-abstract/helpers/sign.js","../node_modules/es-abstract/helpers/mod.js","../node_modules/es-to-primitive/es5.js","../node_modules/es-to-primitive/helpers/isPrimitive.js","../node_modules/es-abstract/helpers/callBind.js","../node_modules/string.prototype.trim/shim.js","../node_modules/for-each/index.js","../node_modules/xhr-request/lib/normalize-response.js","../node_modules/http-status-error/index.js","../node_modules/assert-ok/index.js","../node_modules/builtin-status-codes/browser.js","../node_modules/safe-json-parse/callback.js","../node_modules/is-obj/index.js","../node_modules/query-string-flatten/index.js","../node_modules/query-string-flatten/node_modules/query-string/index.js","../node_modules/obj-query/index.js","../node_modules/is-plain-obj/index.js","../node_modules/object.reduce/index.js","../node_modules/for-own/index.js","../node_modules/for-in/index.js","../node_modules/map-obj/index.js","../node_modules/object-pair/index.js","../node_modules/print-value/index.js","../node_modules/print-value/node_modules/isobject/index.js","../node_modules/print-value/node_modules/isarray/index.js","../node_modules/json-stringify-safe/stringify.js","../node_modules/value-pipe/index.js","../node_modules/@commaai/comma-api/dist/annotations.js","../node_modules/core-js/library/fn/number/is-finite.js","../node_modules/core-js/library/modules/es6.number.is-finite.js","../node_modules/@commaai/comma-api/dist/validators.js","../node_modules/joi-browser/dist/joi-browser.js","../node_modules/@commaai/comma-api/dist/athena.js","../node_modules/@commaai/comma-api/dist/auth.js","../node_modules/@commaai/comma-api/dist/devices.js","../node_modules/babel-runtime/core-js/json/stringify.js","../node_modules/core-js/library/fn/json/stringify.js","../node_modules/@commaai/comma-api/dist/derived.js","../node_modules/@commaai/comma-api/dist/drives.js","../node_modules/babel-runtime/helpers/toConsumableArray.js","../node_modules/babel-runtime/core-js/array/from.js","../node_modules/core-js/library/fn/array/from.js","../node_modules/core-js/library/modules/es6.array.from.js","../node_modules/core-js/library/modules/_create-property.js","../node_modules/@commaai/comma-api/dist/leaderboard.js","../node_modules/@commaai/comma-api/dist/raw.js","../node_modules/@commaai/comma-api/dist/vehicles.js","../node_modules/@commaai/comma-api/dist/video.js","../node_modules/babel-runtime/helpers/slicedToArray.js","../node_modules/babel-runtime/core-js/is-iterable.js","../node_modules/core-js/library/fn/is-iterable.js","../node_modules/core-js/library/modules/core.is-iterable.js","../node_modules/babel-runtime/core-js/get-iterator.js","../node_modules/core-js/library/fn/get-iterator.js","../node_modules/core-js/library/modules/core.get-iterator.js","../node_modules/@commaai/my-comma-auth/dist/storage.js","../node_modules/localforage/dist/localforage.js","../node_modules/@commaai/my-comma-auth/dist/config.js","../node_modules/simple-concat/index.js","../node_modules/stream-http/lib/request.js","../node_modules/to-arraybuffer/index.js","../node_modules/stream-http/node_modules/builtin-status-codes/browser.js","../node_modules/punycode/punycode.js","../node_modules/url/util.js","../node_modules/querystring-es3/decode.js","../node_modules/querystring-es3/encode.js","../node_modules/https-browserify/index.js","../node_modules/once/once.js","../node_modules/wrappy/wrappy.js","../node_modules/cuint/index.js","../node_modules/cuint/lib/uint32.js","../node_modules/cuint/lib/uint64.js","../node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","api/rlog.js","workers/rlog-utils.js","workers/rlog-downloader.worker.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","getDefault","getModuleExports","object","property","prototype","hasOwnProperty","p","s","load","storage","debug","e","process","DEBUG","log","console","Function","apply","arguments","formatArgs","args","useColors","this","namespace","humanize","diff","color","splice","index","lastC","replace","match","save","namespaces","removeItem","window","type","document","documentElement","style","WebkitAppearance","firebug","exception","table","navigator","userAgent","toLowerCase","parseInt","RegExp","$1","chrome","local","localstorage","localStorage","colors","formatters","j","v","JSON","stringify","err","message","enable","debug_1","constants_1","util_1","list_element_size_1","object_size_1","orphan_1","pointer_allocation_result_1","pointer_type_1","errors_1","trace","default","Pointer","segment","byteOffset","depthLimit","MAX_DEPTH","Error","format","PTR_DEPTH_LIMIT_EXCEEDED","trackPointerAllocation","byteLength","PTR_OFFSET_OUT_OF_BOUNDS","_capnp","compositeList","toString","id","dump","adopt","copyFrom","disown","isNull","displayName","src","_moveTo","Orphan","bufferToHex","buffer","slice","getListElementByteLength","elementSize","ListElementSize","BIT","NaN","BYTE","BYTE_2","BYTE_4","BYTE_8","POINTER","COMPOSITE","VOID","PTR_INVALID_LIST_SIZE","add","offset","erase","getTargetPointerType","PointerType","STRUCT","copyFromStruct","LIST","copyFromList","PTR_INVALID_POINTER_TYPE","size","getTargetStructSize","getContent","fillZeroWords","dataByteLength","pointerLength","getTargetListElementSize","length","getTargetListLength","contentWords","padToWord","tag","compositeSize","getStructSize","compositeByteLength","getByteLength","getOffsetWords","setWordZero","OTHER","erasePointer","getPointerType","FAR","landingPad","followFar","isDoubleFar","targetSegment","getSegment","getUint32","targetWordOffset","followFars","ignoreCompositeIndex","getFarSegmentId","target","isCompositeList","undefined","compositeIndex","getListElementSize","LIST_SIZE_MASK","getListLength","getInt32","POINTER_TYPE_MASK","getStructDataWords","getUint16","getStructPointerLength","ObjectSize","getTargetCompositeListTag","getTargetCompositeListSize","PTR_INVALID_FAR_TARGET","initPointer","contentSegment","contentOffset","hasCapacity","landingPad_1","allocate","setFarPointer","PointerAllocationResult","INVARIANT_UNREACHABLE_CODE","POINTER_DOUBLE_FAR_MASK","isWordZero","doubleFar","offsetWords","segmentId","A","B","C","D","setUint32","setListPointer","TypeError","TYPE_COMPOSITE_SIZE_UNDEFINED","getWordLength","setStructPointer","getDataWordLength","setUint16","dst","srcCompositeSize","srcStructByteLength","dstContent","srcContent","srcElementSize","srcLength","copyWord","wordLength","copyWords","res","pointer","srcSize","srcDataWordLength","traversalLimit","PTR_TRAVERSAL_LIMIT_EXCEEDED","getListByteLength","getCapabilityId","relocateTo","lo","getUint8","hi","setInterfacePointer","capId","validate","pointerType","PTR_WRONG_POINTER_TYPE","PTR_WRONG_LIST_TYPE","_extendStatics","extendStatics","b","setPrototypeOf","__proto__","Array","__extends","__","constructor","_assign","__assign","assign","__rest","indexOf","getOwnPropertySymbols","propertyIsEnumerable","__decorate","decorators","desc","getOwnPropertyDescriptor","Reflect","decorate","__param","paramIndex","decorator","__metadata","metadataKey","metadataValue","metadata","__awaiter","thisArg","_arguments","P","generator","Promise","resolve","reject","fulfilled","step","next","rejected","result","done","then","__generator","body","f","y","g","_","label","sent","trys","ops","verb","iterator","op","pop","push","__exportStar","__values","__read","ar","error","__spread","concat","__spreadArrays","il","k","a","jl","__await","__asyncGenerator","asyncIterator","q","resume","fulfill","settle","shift","__asyncDelegator","__asyncValues","__makeTemplateObject","cooked","raw","__importStar","mod","__importDefault","ListElementOffset","_slicedToArray","arr","_arrayWithHoles","isArray","_iterableToArrayLimit","_arr","_n","_d","_e","_s","_i","_nonIterableRest","tslib_1","pointer_1","List","_super","all","callbackfn","getLength","any","ap","callbackfns","_this","_loop_1","map","other","otherLength","drop","dropWhile","empty","every","filter","find","forEach","_index","groupBy","intersperse","sep","reduce","initialValue","set","_value","start","end","Math","min","some","take","takeWhile","toArray","identity","initList","ceil","PTR_COMPOSITE_SIZE_UNDEFINED","base64","ieee754","kMaxLength","Buffer","TYPED_ARRAY_SUPPORT","createBuffer","that","RangeError","Uint8Array","arg","encodingOrOffset","allocUnsafe","from","ArrayBuffer","fromArrayBuffer","array","fromArrayLike","fromString","string","encoding","isEncoding","actual","write","fromObject","obj","isBuffer","len","checked","copy","isnan","val","data","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","isNaN","arrayIndexOf","lastIndexOf","indexSize","arrLength","valLength","String","read","buf","readUInt16BE","foundIndex","found","hexWrite","Number","remaining","strLen","parsed","substr","utf8Write","blitBuffer","asciiWrite","asciiToBytes","str","byteArray","charCodeAt","latin1Write","base64Write","ucs2Write","utf16leToBytes","units","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","codePoints","MAX_ARGUMENTS_LENGTH","fromCharCode","SlowBuffer","alloc","INSPECT_MAX_BYTES","global","typedArraySupport","foo","subarray","poolSize","_augment","species","configurable","fill","allocUnsafeSlow","_isBuffer","compare","x","list","pos","swap16","swap32","swap64","equals","inspect","max","join","thisStart","thisEnd","thisCopy","targetCopy","includes","isFinite","toJSON","ret","out","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","pow","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","floor","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","limit","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","code","INVALID_BASE64_RE","Infinity","leadSurrogate","toByteArray","base64clean","stringtrim","trim","fn","rest","first","pa","partial","partialRight","apa","left","right","curry","curryRight","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","setTimeout","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","runClearTimeout","marker","Item","noop","nextTick","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","assertNever","MSG_INVALID_FRAME_HEADER","MSG_NO_SEGMENTS_IN_ARENA","MSG_PACK_NOT_WORD_ALIGNED","MSG_SEGMENT_OUT_OF_BOUNDS","MSG_SEGMENT_TOO_SMALL","NOT_IMPLEMENTED","PTR_ADOPT_COMPOSITE_STRUCT","PTR_ADOPT_WRONG_MESSAGE","PTR_ALREADY_ADOPTED","PTR_DISOWN_COMPOSITE_STRUCT","PTR_INIT_COMPOSITE_STRUCT","PTR_INIT_NON_GROUP","PTR_INVALID_UNION_ACCESS","PTR_STRUCT_DATA_OUT_OF_BOUNDS","PTR_STRUCT_POINTER_OUT_OF_BOUNDS","PTR_WRONG_COMPOSITE_DATA_SIZE","PTR_WRONG_COMPOSITE_PTR_SIZE","PTR_WRONG_STRUCT_DATA_SIZE","PTR_WRONG_STRUCT_PTR_SIZE","RANGE_INT32_OVERFLOW","RANGE_INT64_UNDERFLOW","RANGE_INVALID_UTF8","RANGE_SIZE_OVERFLOW","MAX_SEGMENT_LENGTH","RANGE_UINT32_OVERFLOW","SEG_BUFFER_NOT_ALLOCATED","SEG_GET_NON_ZERO_SINGLE","SEG_ID_OUT_OF_BOUNDS","SEG_NOT_WORD_ALIGNED","SEG_REPLACEMENT_BUFFER_TOO_SMALL","SEG_SIZE_OVERFLOW","TYPE_GET_GENERIC_LIST","TYPE_SET_GENERIC_LIST","precision","argIndex","escaped","leadingZero","nextArg","slurpNumber","digits","test","pad","tmp","parseFloat","toFixed","toUpperCase","width","repeat","times","MAX_VALUE","h","checkInt32","MAX_INT32","checkUint32","MAX_UINT32","decodeUtf8","cp","dumpBuffer","MAX_BUFFER_DUMP_BYTES","encodeUtf8","self","__g","tmpWord","DataView","Uint16Array","DEFAULT_BUFFER_SIZE","DEFAULT_DECODE_LIMIT","DEFAULT_DEPTH_LIMIT","DEFAULT_TRAVERSE_LIMIT","GROWTH_FACTOR","MAX_SAFE_INTEGER","MAX_STREAM_SEGMENTS","MIN_SAFE_INTEGER","MIN_SINGLE_SEGMENT_GROWTH","NATIVE_LITTLE_ENDIAN","PACK_SPAN_THRESHOLD","POINTER_COPY_LIMIT","VAL32","core","__e","store","uid","USE_SYMBOL","createMessageSpec","dbc","address","bus","frame","getMessageFrame","entries","byteColors","byteStateChangeCounts","determineByteStateChangeTimes","hexData","time","msgSize","lastParsedMessage","byteStateChangeTimes","createMessageEntry","relTime","signals","getSignalValues","updated","Date","now","parseMessage","timeStart","msgSpec","msgEntry","BIG_ENDIAN_START_BITS","bigEndianBitIndex","matrixBitIndex","addCanMessage","canMessage","canStartTime","messages","prevMsgEntries","byteStateChangeCountsByMessage","busTime","prevMsgEntry","count","idx","matrixBitNumber","bigEndianIndex","reparseMessage","msg","findMaxByteStateChangeCount","values","counts","countArr","count1","count2","setMessageByteColors","maxByteStateChangeCount","red","round","_classCallCheck","instance","Constructor","_defineProperties","props","descriptor","writable","_createClass","protoProps","staticProps","patch","postForm","post","_regenerator2","_interopRequireDefault","_asyncToGenerator3","_promise2","_ref","mark","_callee","endpoint","wrap","_callee$","_context","prev","ensureInit","abrupt","request","query","json","_errorHandlerFn","stop","_x","_x2","_ref2","_callee2","_callee2$","_context2","_x3","_x4","_ref3","_callee3","_callee3$","_context3","_querystringify2","headers","_x5","_x6","_ref4","_callee4","_callee4$","_context4","_x7","_x8","configure","_instance2","_errorHandler2","_config","initPromise","accessToken","errorHandler","config","baseUrl","COMMA_URL_ROOT","jwt","parse","token","gen","info","inherits","ctor","superCtor","super_","TempCtor","isObject","it","pna","objectKeys","keys","Duplex","util","Readable","Writable","method","options","readable","allowHalfOpen","onend","_writableState","ended","onEndNT","highWaterMark","_readableState","destroyed","_destroy","cb","Stream","Transform","PassThrough","pointerCount","extend","source","ctx","hide","has","$export","own","IS_FORCED","F","IS_GLOBAL","G","IS_STATIC","S","IS_PROTO","IS_BIND","IS_WRAP","W","expProto","virtual","R","U","dP","createDesc","_defineProperty","signalMap","FrontLeftWheel","shortSignal","factor","FrontRightWheel","RearLeftWheel","RearRightWheel","VEgo","AEgo","VEgoRaw","YawRate","SteeringAngle","longSignal","Brake","Gas","LeftBlinker","boolSignal","RightBlinker","GenericToggle","DoorOpen","SeatbeltUnlatched","GasPressed","BrakeLights","SteeringPressed","Standstill","GearShifter","startBit","unsigned","charSignal","RcvTow","GpsWeek","LeapSeconds","NumMeas","Voltage","Current","Started","ControlsAllowed","GasInterceptorDetected","StartedSignalDetected","Cpu0","Cpu1","Cpu2","Cpu3","Mem","Gpu","FanSpeed","BatteryPercent","UsbOnline","FreeSpace","ADDRESS_LIST","addressForName","nameForAddress","isLogAddress","frameForAddress","Frame","signal","createSignalEntry","Signal","isLittleEndian","isSigned","unit","objectToString","isBoolean","isNullOrUndefined","isNumber","isString","isSymbol","isUndefined","isRegExp","re","isDate","isError","isFunction","isPrimitive","serialization_1","Message","AnyPointerList","BoolList","CompositeList","Data","DataList","Float32List","Float64List","Int16List","Int32List","Int64List","Int8List","Interface","InterfaceList","PointerList","Struct","Text","TextList","Uint16List","Uint32List","Uint64List","Uint8List","VoidList","Void","getBitMask","getFloat32Mask","getFloat64Mask","getInt16Mask","getInt32Mask","getInt64Mask","getInt8Mask","getUint16Mask","getUint32Mask","getUint64Mask","getUint8Mask","types_1","Int64","Uint64","list_1","PointerClass","_a","class_1","aFunction","anObject","IE8_DOM_DEFINE","toPrimitive","O","Attributes","transmitters","extended","comment","txName","txNum","nextNewTransmitterName","text","header","_indexOf","_getAjaxObject","XDomainRequest","XMLHttpRequest","LogStream","_endpoint","_traceCode","random","PI","substring","_pageInfo","page_info","_token","_print","print","_noFormat","no_format","_SSL","ssl","location","protocol","LEENDPOINT","_backlog","_active","_sentPageInfo","_apiCall","onreadystatechange","readyState","status","warn","onload","open","setRequestHeader","overrideMimeType","send","_getEvent","_agentInfo","nav","doNotTrack","screen","url","pathname","referrer","height","innerWidth","innerHeight","appName","appVersion","cookie_enabled","cookieEnabled","do_not_track","platform","_rawLog","event","level","serialized","ex","cache","catchall","oldHandler","onerror","newHandler","line","Logger","logger","dict","_log","loggers","_createLogStream","init","_deprecatedInit","createLogStream","to","_getLogger","destroy","_destroyLogStream","arg1","arg2","arg3","afterTickOne","afterTickTwo","afterTickThree","afterTick","getOwnPropertyDescriptors","descriptors","formatRegExp","objects","deprecate","noDeprecation","warned","deprecated","throwDeprecation","traceDeprecation","debugEnviron","debugs","opts","seen","stylize","stylizeNoColor","depth","showHidden","_extend","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","formatPrimitive","simple","visibleKeys","arrayToHash","hash","getOwnPropertyNames","formatError","output","base","braces","toUTCString","formatArray","formatProperty","reduceToSingleString","cur","numLinesEst","split","debuglog","NODE_DEBUG","pid","months","timestamp","getHours","getMinutes","getSeconds","getDate","getMonth","prop","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","original","promiseResolve","promiseReject","promise","getPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","rej","ArenaKind","TYPED_OK","Int32Array","_has","sources","shrinkBuf","fnTyped","arraySet","dest","src_offs","dest_offs","flattenChunks","chunks","chunk","fnUntyped","setTyped","Buf8","Buf16","Buf32","$at","iterated","_t","point","implementation","ThrowTypeError","hasSymbols","getProto","asyncGenIterator","TypedArray","INTRINSICS","Atomics","Boolean","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","Int8Array","Int16Array","Map","valueOf","Proxy","ReferenceError","Set","SharedArrayBuffer","SyntaxError","Uint8ClampedArray","Uint32Array","URIError","WeakMap","WeakSet","GetIntrinsic","allowMissing","handle","response","statusCode","isFloat","receiver","multiplex","valueDescriptions","calculateMin","calculateMax","generateColors","_colors","enumberable","byteOrder","signedChar","msgId","lsbBitNumber","DbcUtils","bitIndex","bitRange","bitNumber","isLsb","isMsb","range","littleEndianBitDescription","bigEndianBitDescription","rawRange","rawMin","calculateRawRange","rawMax","messageId","parts","lastColor","randomcolor","otherSignal","EE","EventEmitter","pipe","ondata","pause","ondrain","_isStdio","onclose","didOnEnd","er","cleanup","listenerCount","ReflectOwnKeys","ReflectApply","ownKeys","NumberIsNaN","_events","_eventsCount","_maxListeners","defaultMaxListeners","$getMaxListeners","_addListener","listener","prepend","events","existing","newListener","unshift","w","emitter","ProcessEmitWarning","warning","onceWrapper","fired","wrapFn","_onceWrap","state","wrapped","_listeners","unwrap","evlistener","unwrapListeners","arrayClone","setMaxListeners","getMaxListeners","doError","context","handler","position","originalListener","spliceOne","rawListeners","eventNames","copyProps","SafeBuffer","CorkedRequest","entry","finish","onCorkedFinish","corkReq","callback","pendingcb","corkedRequestsFree","asyncWrite","setImmediate","WritableState","internalUtil","OurUint8Array","realHasInstance","destroyImpl","nop","stream","isDuplex","objectMode","writableObjectMode","hwm","writableHwm","writableHighWaterMark","defaultHwm","finalCalled","needDrain","ending","finished","noDecode","decodeStrings","defaultEncoding","writing","corked","sync","bufferProcessing","onwrite","writecb","onwriteStateUpdate","writelen","onwriteError","finishMaybe","errorEmitted","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","_write","writev","_writev","final","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","need","prefinish","getBuffer","current","hasInstance","_isUint8Array","_uint8ArrayToBuffer","writeAfterEnd","validChunk","valid","writeOrBuffer","newChunk","decodeChunk","last","cork","uncork","setDefaultEncoding","endWritable","_undestroy","undestroy","any_pointer_list_1","bool_list_1","composite_list_1","data_1","data_list_1","float32_list_1","float64_list_1","int8_list_1","int16_list_1","int32_list_1","int64_list_1","interface_1","interface_list_1","pointer_list_1","struct_1","text_1","text_list_1","uint8_list_1","uint16_list_1","uint32_list_1","uint64_list_1","void_1","void_list_1","fromPointer","_fromPointerUnchecked","copyBuffer","dstLength","setUint8","toArrayBuffer","toDataView","toUint8Array","TMP_WORD","getAs","getBit","getData","getFloat32","getFloat64","getUint64","getInt8","getInt16","getInt64","getList","getPointer","getPointerAs","getStruct","getText","initData","initStruct","initStructAt","setBit","setFloat32","setFloat64","setUint64","setInt8","setInt16","setInt32","setInt64","setText","testWhich","StructClass","resize","dstSize","getSize","srcPtr","srcPtrTarget","srcPtrContent","dstPtr","bitOffset","defaultMask","bitMask","checkDataBounds","ds","getDataSection","checkPointerBounds","ps","getPointerSection","ListClass","srcElementOffset","dstElementOffset","ts","wanted","setPointer","int64_1","uint64_1","textFromPointerUnchecked","originalLength","propIsEnumerable","toObject","shouldUseNative","test1","test2","test3","letter","symbols","is","createElement","bitmap","IObject","defined","toInteger","shared","def","TAG","stat","Iterators","TO_STRING_TAG","DOMIterables","NAME","Collection","proto","cof","ARG","T","tryGet","callee","classof","ITERATOR","getIteratorMethod","PromiseCapability","$$resolve","$$reject","httpError","jsonParse","Query","Client","defaultConfig","Request","httpMethods","methods","createMethod","path","setQuery","setToken","keyName","authorization","responseHandler","handleResponse","createError","fnToStr","constructorRegex","isES6ClassFn","isES6ClassFunction","fnStr","toStr","hasToStringTag","isCallable","tryFunctionToStr","tryFunctionObject","strClass","normalize","input","joined","definition","undef","decode","querystringify","prefix","pairs","querystring","part","parser","exec","ATHENA_URL_ROOT","VIDEO_HOST","COMMA_VIDEO_CDN","punycode","Url","slashes","auth","host","port","hostname","search","href","urlParse","urlResolve","relative","resolveObject","urlResolveObject","urlFormat","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","parseQueryString","slashesDenoteHost","u","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","ae","esc","escape","qm","charAt","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","up","isAbsolute","BoardUnit","attributes","ReadableState","EElistenerCount","debugUtil","StringDecoder","BufferList","kProxyEvents","readableObjectMode","readableHwm","readableHighWaterMark","pipes","pipesCount","flowing","endEmitted","reading","needReadable","emittedReadable","readableListening","resumeScheduled","awaitDrain","readingMore","decoder","_read","readableAddChunk","addToFront","skipChunkCheck","onEofChunk","emitReadable","chunkInvalid","addChunk","maybeReadMore","needMoreData","isPaused","setEncoding","enc","MAX_HWM","howMuchToRead","head","computeNewHighWaterMark","emitReadable_","flow","maybeReadMore_","nReadingNextTick","resume_","fromList","clear","fromListPartial","hasStrings","copyFromBufferString","nb","tail","copyFromBuffer","endReadable","endReadableNT","xs","nOrig","doRead","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","onfinish","cleanedUp","pipeOnDrain","increasedAwaitDrain","dests","ev","paused","_fromList","emitErrorNT","readableDestroyed","writableDestroyed","normalizeEncoding","nenc","_normalizeEncoding","retried","utf16Text","utf16End","fillLast","utf8FillLast","base64Text","base64End","simpleWrite","simpleEnd","lastNeed","lastTotal","lastChar","utf8CheckByte","byte","utf8CheckExtraBytes","utf8End","utf8Text","total","utf8CheckIncomplete","afterTransform","_transformState","transforming","writechunk","rs","needTransform","writeencoding","transform","_transform","flush","_flush","_this2","err2","readSize","localIndex","segments","sizeArr","segSize","memo","readMessage","capnp","Log","CapnpEvent","Event","getRoot","arena_allocation_result_1","arena_kind_1","MultiSegmentArena","buffers","kind","MULTI_SEGMENT","getNumSegments","minSize","ArenaAllocationResult","SingleSegmentArena","SINGLE_SEGMENT","srcBuffer","dispose","noCopy","fromDataView","fromHexString","fromNumber","setValue","fromUint8Array","toHexString","isZero","loWord","hiWord","abs","toNumber","allowImprecise","hex","radix","ListItem","deleted","broadcast","listenersCopy","listen","xtend","DestroyableTransform","_destroyed","through2","construct","t2","Through2","override","objectAssign","hasOwn","pSlice","functionsHaveNames","pToString","arrbuf","assert","ok","regex","getName","func","truncate","something","rawname","fail","expected","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","getTime","multiline","lastIndex","ignoreCase","actualIndex","objEquiv","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","kb","sort","expectedException","isPrototypeOf","_throws","shouldThrow","block","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","getMessage","captureStackTrace","stack","fn_name","next_line","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","adler32","adler","s1","s2","crcTable","makeTable","crc32","crc","asyncGeneratorStep","_next","_throw","_asyncToGenerator","LIBRARY","redefine","$iterCreate","setToStringTag","BUGGY","returnThis","Base","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","copyright","px","ArrayProto","SPECIES","defer","channel","invoke","html","cel","setTask","clearTask","clearImmediate","MessageChannel","Dispatch","counter","port2","port1","onmessage","postMessage","addEventListener","importScripts","appendChild","removeChild","newPromiseCapability","promiseCapability","SAFE_CLOSING","riter","skipClosing","safe","iter","alert","confirm","prompt","origDefineProperty","supportsDescriptors","arePropertyDescriptorsSupported","predicate","predicates","isArgs","ES","leftWhitespace","rightWhitespace","ToString","CheckObjectCoercible","getPolyfill","isErrorCode","ConfigRequestPromise","cr","requestFunc","doccy","minDoc","topLevel","statusCodes","http","defaultProtocol","req","ClientRequest","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","writableStream","WritableStream","abortController","AbortController","blobConstructor","Blob","xhr","getXHR","checkTypeSupport","responseType","haveArrayBuffer","haveSlice","arraybuffer","fetch","msstream","mozchunkedarraybuffer","vbArray","VBArray","rStates","readyStates","UNSENT","OPENED","HEADERS_RECEIVED","LOADING","DONE","fetchTimer","_mode","rawHeaders","trailers","rawTrailers","_fetchResponse","statusMessage","statusText","capability","_resumeFetch","close","abort","pipeTo","catch","reader","getReader","_xhr","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","_onXHRProgress","responseBody","responseText","newData","MSStreamReader","onprogress","readAsArrayBuffer","webpackPolyfill","paths","children","encode","Reader","assertFunction","unset","ms","interval","setInterval","clearInterval","account","_interopRequireWildcard","annotations","athena","devices","_derived2","drives","leaderboard","vehicles","_video2","newObj","derived","video","getCommaAccessToken","logOut","_document2","isAuthenticated","isAuthed","https","decompressResponse","simpleGet","loc","maxRedirects","isStream","form","accept","tryUnzip","UINT64","require","DBC_COMMENT_RE","DBC_COMMENT_MULTI_LINE_RE","MSG_RE","SIGNAL_RE","MP_SIGNAL_RE","VAL_RE","VAL_TABLE_RE","MSG_TRANSMITTER_RE","SIGNAL_COMMENT_RE","SIGNAL_COMMENT_MULTI_LINE_RE","MESSAGE_COMMENT_RE","MESSAGE_COMMENT_MULTI_LINE_RE","BOARD_UNIT_RE","BOARD_UNIT_COMMENT_RE","BOARD_UNIT_COMMENT_MULTI_LINE_RE","floatOrInt","numericStr","isInteger","DBC","dbcString","boardUnits","comments","dbcText","importDbcString","LogSignals","messageNames","msgName","msgNum","boardUnitNames","bu","missingBoardUnits","receivers","recv","updateBoardUnits","txt","_newSymbols","boardUnitsText","frames","messageTxs","addr","txs","signalsByMsgId","sig","msgAddr","valueDescriptionText","nextNewFrameName","newMsg","createFrame","warnings","valueTables","followUp","lines","followUpLine","partialComment","idString","transmitter","receiverStr","signalProperties","CloudLog","signalName","vals","description","tableName","items","hasFollowUp","newBoardUnits","boardUnitName","boardUnit","signalSpec","dataBitPos","blen","swapOrder","wordSize","gSize","swappedWords","word","rightHandAnd","ival","shiftr","and","shiftAmount","signalValue","bitPos","paddedBuffer","paddedDataHex","rightPad","signalValuesByName","valueForInt64Signal","valueForInt32Signal","metricComment","metric","metrics","metricName","_string","_length","_char","LogEntries","LOGENTRIES_TOKEN","update","__JEST__","created","root","factory","randomColor","seed","colorDictionary","loadColorBounds","defineColor","colorRanges","pickHue","hue","randomWithin","hueRange","getRealHueRange","colorHue","getColorInfo","HexToHSB","number","getHueRange","colorInput","pickSaturation","luminosity","saturationRange","getSaturationRange","sMin","sMax","pickBrightness","H","bMin","getMinimumBrightness","lowerBounds","v1","v2","bMax","setFormat","hsv","HSVtoHSL","hsl","hslColor","alpha","HSVtoRGB","rgbColor","HSVtoHex","rgb","componentToHex","colorName","rnd","brightnessRange","h_i","green","blue","cMax","delta","saturation","stringToInteger","totalColors","getUrlParameter","results","ReaderStream","StreamSelector","fileType","zlib","bz2","DecompressStream","inputStream","selectorStream","minBuffer","selector","createGunzip","CapnpStream","EventWrapper","streamReader","capnpStream","isBinary","binary","isStarted","pipeAndListen","CapnpSteam","buffUtil","curBuffer","readNextMessage","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","num","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","rt","LN2","Timeout","clearFn","_id","_clearFn","scope","unref","ref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","onTimeout","_onTimeout","registerImmediate","nextHandle","tasksByHandle","currentlyRunningATask","doc","attachTo","installNextTickImplementation","runIfPresent","canUsePostMessage","postMessageIsAsynchronous","oldOnMessage","installMessageChannelImplementation","installReadyStateChangeImplementation","script","installSetTimeoutImplementation","installPostMessageImplementation","messagePrefix","onGlobalMessage","attachEvent","task","message_1","_makePrimitiveMaskFn","setter","dv","arena_1","packing_1","pointers_1","segment_1","packed","singleSegment","initMessage","isAnyArena","preallocateSegments","allocateSegment","RootStruct","initRoot","toPackedArrayBuffer","arena","isArrayBufferView","unpack","getFramedSegments","segmentCount","numSegments","Arena","Segment","replaceBuffer","segmentLength","streamFrame","getStreamFrame","totalLength","pack","prevTime","createDebug","enabled","curr","coerce","formatter","selectColor","disable","names","skips","plural","long","fmtLong","fmtShort","multi_segment_arena_1","single_segment_arena_1","getHammingWeight","getTagByte","getUnpackedByteLength","lastTag","getZeroByteCount","unpacked","spanTagOffset","spanWordLength","spanThreshold","srcByteOffset","skipWriteWord","dstByteOffset","spanByteLength","CompositeClass","neg","negate","carry","_dv","srcSegment","getCapacity","capnp_ts_1","car_capnp_1","_capnpFileId","Map_Entry","adoptKey","disownKey","getKey","hasKey","setKey","adoptValue","disownValue","getValue","hasValue","InitData_DeviceType","adoptEntries","disownEntries","getEntries","_Entries","hasEntries","initEntries","setEntries","Entry","InitData_AndroidBuildInfo","getBoard","setBoard","getBootloader","setBootloader","getBrand","setBrand","getDevice","setDevice","getDisplay","setDisplay","getFingerprint","setFingerprint","getHardware","setHardware","getHost","setHost","getId","setId","getManufacturer","setManufacturer","getModel","setModel","getProduct","setProduct","getRadioVersion","setRadioVersion","getSerial","setSerial","adoptSupportedAbis","disownSupportedAbis","getSupportedAbis","hasSupportedAbis","initSupportedAbis","setSupportedAbis","getTags","setTags","setTime","getType","setType","getUser","setUser","getVersionCodename","setVersionCodename","getVersionRelease","setVersionRelease","getVersionSdk","setVersionSdk","getVersionSecurityPatch","setVersionSecurityPatch","InitData_AndroidSensor","setName","getVendor","setVendor","getVersion","setVersion","getHandle","setHandle","getMaxRange","setMaxRange","getResolution","setResolution","getPower","setPower","getMinDelay","setMinDelay","getFifoReservedEventCount","setFifoReservedEventCount","getFifoMaxEventCount","setFifoMaxEventCount","getStringType","setStringType","getMaxDelay","setMaxDelay","InitData_ChffrAndroidExtra","adoptAllCameraCharacteristics","disownAllCameraCharacteristics","getAllCameraCharacteristics","hasAllCameraCharacteristics","initAllCameraCharacteristics","setAllCameraCharacteristics","InitData_IosBuildInfo","getAppVersion","setAppVersion","getAppBuild","setAppBuild","getOsVersion","setOsVersion","getDeviceModel","setDeviceModel","InitData_PandaInfo","getHasPanda","setHasPanda","getDongleId","setDongleId","getStVersion","setStVersion","getEspVersion","setEspVersion","FrameData_FrameType","InitData","adoptKernelArgs","disownKernelArgs","getKernelArgs","hasKernelArgs","initKernelArgs","setKernelArgs","getKernelVersion","setKernelVersion","getGctx","setGctx","getDeviceType","setDeviceType","getGitCommit","setGitCommit","getGitBranch","setGitBranch","getGitRemote","setGitRemote","adoptAndroidBuildInfo","disownAndroidBuildInfo","getAndroidBuildInfo","hasAndroidBuildInfo","initAndroidBuildInfo","setAndroidBuildInfo","adoptAndroidSensors","disownAndroidSensors","getAndroidSensors","_AndroidSensors","hasAndroidSensors","initAndroidSensors","setAndroidSensors","adoptAndroidProperties","disownAndroidProperties","getAndroidProperties","hasAndroidProperties","initAndroidProperties","setAndroidProperties","adoptChffrAndroidExtra","disownChffrAndroidExtra","getChffrAndroidExtra","hasChffrAndroidExtra","initChffrAndroidExtra","setChffrAndroidExtra","adoptIosBuildInfo","disownIosBuildInfo","getIosBuildInfo","hasIosBuildInfo","initIosBuildInfo","setIosBuildInfo","adoptPandaInfo","disownPandaInfo","getPandaInfo","hasPandaInfo","initPandaInfo","setPandaInfo","getDirty","setDirty","getPassive","setPassive","adoptParams","disownParams","getParams","hasParams","initParams","setParams","DeviceType","AndroidBuildInfo","AndroidSensor","ChffrAndroidExtra","IosBuildInfo","PandaInfo","FrameData_AndroidCaptureResult","getSensitivity","setSensitivity","getFrameDuration","setFrameDuration","getExposureTime","setExposureTime","getRollingShutterSkew","setRollingShutterSkew","adoptColorCorrectionTransform","disownColorCorrectionTransform","getColorCorrectionTransform","hasColorCorrectionTransform","initColorCorrectionTransform","setColorCorrectionTransform","adoptColorCorrectionGains","disownColorCorrectionGains","getColorCorrectionGains","hasColorCorrectionGains","initColorCorrectionGains","setColorCorrectionGains","getDisplayRotation","setDisplayRotation","FrameData","getFrameId","setFrameId","getEncodeId","setEncodeId","getTimestampEof","setTimestampEof","getFrameLength","setFrameLength","getIntegLines","setIntegLines","getGlobalGain","setGlobalGain","getLensPos","setLensPos","getLensSag","setLensSag","getLensErr","setLensErr","getLensTruePos","setLensTruePos","adoptImage","disownImage","getImage","hasImage","initImage","setImage","getFrameType","setFrameType","getTimestampSof","setTimestampSof","adoptTransform","disownTransform","getTransform","hasTransform","initTransform","setTransform","adoptAndroidCaptureResult","disownAndroidCaptureResult","getAndroidCaptureResult","hasAndroidCaptureResult","initAndroidCaptureResult","setAndroidCaptureResult","FrameType","AndroidCaptureResult","Thumbnail","adoptThumbnail","disownThumbnail","getThumbnail","hasThumbnail","initThumbnail","setThumbnail","GPSNMEAData","getTimestamp","setTimestamp","getLocalWallTime","setLocalWallTime","getNmea","setNmea","SensorEventData_SensorSource","SensorEventData_Which","SensorEventData_SensorVec","adoptV","disownV","getV","hasV","initV","setV","getStatus","setStatus","GpsLocationData_SensorSource","SensorEventData","getSensor","setSensor","getUncalibratedDEPRECATED","setUncalibratedDEPRECATED","adoptAcceleration","disownAcceleration","getAcceleration","hasAcceleration","initAcceleration","isAcceleration","setAcceleration","adoptMagnetic","disownMagnetic","getMagnetic","hasMagnetic","initMagnetic","isMagnetic","setMagnetic","adoptOrientation","disownOrientation","getOrientation","hasOrientation","initOrientation","isOrientation","setOrientation","adoptGyro","disownGyro","getGyro","hasGyro","initGyro","isGyro","setGyro","adoptPressure","disownPressure","getPressure","hasPressure","initPressure","isPressure","setPressure","adoptMagneticUncalibrated","disownMagneticUncalibrated","getMagneticUncalibrated","hasMagneticUncalibrated","initMagneticUncalibrated","isMagneticUncalibrated","setMagneticUncalibrated","adoptGyroUncalibrated","disownGyroUncalibrated","getGyroUncalibrated","hasGyroUncalibrated","initGyroUncalibrated","isGyroUncalibrated","setGyroUncalibrated","getProximity","isProximity","setProximity","getLight","isLight","setLight","getSource","setSource","which","ACCELERATION","MAGNETIC","ORIENTATION","GYRO","PRESSURE","MAGNETIC_UNCALIBRATED","GYRO_UNCALIBRATED","PROXIMITY","LIGHT","SensorVec","SensorSource","GpsLocationData","getFlags","setFlags","getLatitude","setLatitude","getLongitude","setLongitude","getAltitude","setAltitude","getSpeed","setSpeed","getBearing","setBearing","getAccuracy","setAccuracy","adoptVNED","disownVNED","getVNED","hasVNED","initVNED","setVNED","getVerticalAccuracy","setVerticalAccuracy","getBearingAccuracy","setBearingAccuracy","getSpeedAccuracy","setSpeedAccuracy","ThermalData_ThermalStatus","CanData","getAddress","setAddress","getBusTime","setBusTime","adoptDat","disownDat","getDat","hasDat","initDat","setDat","getSrc","setSrc","HealthData_HwType","ThermalData","getCpu0","setCpu0","getCpu1","setCpu1","getCpu2","setCpu2","getCpu3","setCpu3","getMem","setMem","getGpu","setGpu","getBat","setBat","getFreeSpace","setFreeSpace","getBatteryPercent","setBatteryPercent","getBatteryStatus","setBatteryStatus","getBatteryCurrent","setBatteryCurrent","getBatteryVoltage","setBatteryVoltage","getUsbOnline","setUsbOnline","getFanSpeed","setFanSpeed","getStarted","setStarted","getStartedTs","setStartedTs","getThermalStatus","setThermalStatus","getChargingError","setChargingError","getChargingDisabled","setChargingDisabled","ThermalStatus","HealthData","getVoltage","setVoltage","getCurrent","setCurrent","getControlsAllowed","setControlsAllowed","getGasInterceptorDetected","setGasInterceptorDetected","getStartedSignalDetectedDeprecated","setStartedSignalDetectedDeprecated","getHasGps","setHasGps","getCanSendErrs","setCanSendErrs","getCanFwdErrs","setCanFwdErrs","getGmlanSendErrs","setGmlanSendErrs","getHwType","setHwType","HwType","LiveUI","getRearViewCam","setRearViewCam","getAlertText1","setAlertText1","getAlertText2","setAlertText2","getAwarenessStatus","setAwarenessStatus","RadarState_LeadData","getDRel","setDRel","getYRel","setYRel","getVRel","setVRel","getARel","setARel","getVLead","setVLead","getALeadDEPRECATED","setALeadDEPRECATED","getDPath","setDPath","getVLat","setVLat","getVLeadK","setVLeadK","getALeadK","setALeadK","getFcw","setFcw","getALeadTau","setALeadTau","getModelProb","setModelProb","getRadar","setRadar","RadarState","adoptCanMonoTimes","disownCanMonoTimes","getCanMonoTimes","hasCanMonoTimes","initCanMonoTimes","setCanMonoTimes","getMdMonoTime","setMdMonoTime","getFtMonoTimeDEPRECATED","setFtMonoTimeDEPRECATED","getControlsStateMonoTime","setControlsStateMonoTime","adoptRadarErrors","disownRadarErrors","getRadarErrors","hasRadarErrors","initRadarErrors","setRadarErrors","adoptWarpMatrixDEPRECATED","disownWarpMatrixDEPRECATED","getWarpMatrixDEPRECATED","hasWarpMatrixDEPRECATED","initWarpMatrixDEPRECATED","setWarpMatrixDEPRECATED","getAngleOffsetDEPRECATED","setAngleOffsetDEPRECATED","getCalStatusDEPRECATED","setCalStatusDEPRECATED","getCalCycleDEPRECATED","setCalCycleDEPRECATED","getCalPercDEPRECATED","setCalPercDEPRECATED","adoptLeadOne","disownLeadOne","getLeadOne","hasLeadOne","initLeadOne","setLeadOne","adoptLeadTwo","disownLeadTwo","getLeadTwo","hasLeadTwo","initLeadTwo","setLeadTwo","getCumLagMs","setCumLagMs","LeadData","LiveCalibrationData","adoptWarpMatrix","disownWarpMatrix","getWarpMatrix","hasWarpMatrix","initWarpMatrix","setWarpMatrix","adoptWarpMatrix2","disownWarpMatrix2","getWarpMatrix2","hasWarpMatrix2","initWarpMatrix2","setWarpMatrix2","adoptWarpMatrixBig","disownWarpMatrixBig","getWarpMatrixBig","hasWarpMatrixBig","initWarpMatrixBig","setWarpMatrixBig","getCalStatus","setCalStatus","getCalCycle","setCalCycle","getCalPerc","setCalPerc","adoptExtrinsicMatrix","disownExtrinsicMatrix","getExtrinsicMatrix","hasExtrinsicMatrix","initExtrinsicMatrix","setExtrinsicMatrix","adoptRpyCalib","disownRpyCalib","getRpyCalib","hasRpyCalib","initRpyCalib","setRpyCalib","ControlsState_OpenpilotState","ControlsState_LongControlState","ControlsState_AlertStatus","ControlsState_AlertSize","LiveTracks","getTrackId","setTrackId","getTimeStamp","setTimeStamp","getCurrentTime","setCurrentTime","getStationary","setStationary","getOncoming","setOncoming","ControlsState_LateralINDIState","getActive","setActive","getSteerAngle","setSteerAngle","getSteerRate","setSteerRate","getSteerAccel","setSteerAccel","getRateSetPoint","setRateSetPoint","getAccelSetPoint","setAccelSetPoint","getAccelError","setAccelError","getDelayedOutput","setDelayedOutput","getDelta","setDelta","getOutput","setOutput","ControlsState_LateralPIDState","getAngleError","setAngleError","getP","setP","getI","setI","getF","setF","getSaturated","setSaturated","ControlsState_LateralControlState_Which","ControlsState_LateralLQRState","ControlsState_LateralControlState","adoptIndiState","disownIndiState","getIndiState","hasIndiState","initIndiState","isIndiState","setIndiState","adoptPidState","disownPidState","getPidState","hasPidState","initPidState","isPidState","setPidState","adoptLqrState","disownLqrState","getLqrState","hasLqrState","initLqrState","isLqrState","setLqrState","INDI_STATE","PID_STATE","LQR_STATE","ControlsState","getCanMonoTimeDEPRECATED","setCanMonoTimeDEPRECATED","getRadarStateMonoTimeDEPRECATED","setRadarStateMonoTimeDEPRECATED","getMdMonoTimeDEPRECATED","setMdMonoTimeDEPRECATED","getPlanMonoTime","setPlanMonoTime","getPathPlanMonoTime","setPathPlanMonoTime","getState","setState","getVEgo","setVEgo","getVEgoRaw","setVEgoRaw","getAEgoDEPRECATED","setAEgoDEPRECATED","getLongControlState","setLongControlState","getVPid","setVPid","getVTargetLead","setVTargetLead","getUpAccelCmd","setUpAccelCmd","getUiAccelCmd","setUiAccelCmd","getUfAccelCmd","setUfAccelCmd","getYActualDEPRECATED","setYActualDEPRECATED","getYDesDEPRECATED","setYDesDEPRECATED","getUpSteerDEPRECATED","setUpSteerDEPRECATED","getUiSteerDEPRECATED","setUiSteerDEPRECATED","getUfSteerDEPRECATED","setUfSteerDEPRECATED","getATargetMinDEPRECATED","setATargetMinDEPRECATED","getATargetMaxDEPRECATED","setATargetMaxDEPRECATED","getATarget","setATarget","getJerkFactor","setJerkFactor","getAngleSteers","setAngleSteers","getAngleSteersDes","setAngleSteersDes","getCurvature","setCurvature","getHudLeadDEPRECATED","setHudLeadDEPRECATED","getStartMonoTime","setStartMonoTime","getMapValid","setMapValid","getForceDecel","setForceDecel","getEnabled","setEnabled","getSteerOverride","setSteerOverride","getVCruise","setVCruise","getAlertStatus","setAlertStatus","getAlertSize","setAlertSize","getAlertBlinkingRate","setAlertBlinkingRate","getAlertType","setAlertType","getAlertSoundDEPRECATED","setAlertSoundDEPRECATED","getAlertSound","setAlertSound","getAngleModelBias","setAngleModelBias","getGpsPlannerActive","setGpsPlannerActive","getEngageable","setEngageable","getDriverMonitoringOn","setDriverMonitoringOn","getVCurvature","setVCurvature","getDecelForTurn","setDecelForTurn","getDecelForModel","setDecelForModel","getLateralControlState","initLateralControlState","OpenpilotState","LongControlState","AlertStatus","AlertSize","LateralINDIState","LateralPIDState","LateralLQRState","LiveEventData","ModelData_PathData","adoptPoints","disownPoints","getPoints","hasPoints","initPoints","setPoints","getProb","setProb","getStd","setStd","adoptStds","disownStds","getStds","hasStds","initStds","setStds","adoptPoly","disownPoly","getPoly","hasPoly","initPoly","setPoly","ModelData_LeadData","getDist","setDist","getRelVel","setRelVel","getRelVelStd","setRelVelStd","getRelY","setRelY","getRelYStd","setRelYStd","getRelA","setRelA","getRelAStd","setRelAStd","ModelData_ModelSettings","getBigBoxX","setBigBoxX","getBigBoxY","setBigBoxY","getBigBoxWidth","setBigBoxWidth","getBigBoxHeight","setBigBoxHeight","adoptBoxProjection","disownBoxProjection","getBoxProjection","hasBoxProjection","initBoxProjection","setBoxProjection","adoptYuvCorrection","disownYuvCorrection","getYuvCorrection","hasYuvCorrection","initYuvCorrection","setYuvCorrection","adoptInputTransform","disownInputTransform","getInputTransform","hasInputTransform","initInputTransform","setInputTransform","ModelData","adoptPath","disownPath","getPath","hasPath","initPath","setPath","adoptLeftLane","disownLeftLane","getLeftLane","hasLeftLane","initLeftLane","setLeftLane","adoptRightLane","disownRightLane","getRightLane","hasRightLane","initRightLane","setRightLane","adoptLead","disownLead","getLead","hasLead","initLead","setLead","adoptFreePath","disownFreePath","getFreePath","hasFreePath","initFreePath","setFreePath","adoptSettings","disownSettings","getSettings","hasSettings","initSettings","setSettings","adoptLeadFuture","disownLeadFuture","getLeadFuture","hasLeadFuture","initLeadFuture","setLeadFuture","adoptSpeed","disownSpeed","hasSpeed","initSpeed","PathData","ModelSettings","EncodeIndex_Type","CalibrationFeatures","adoptP0","disownP0","getP0","hasP0","initP0","setP0","adoptP1","disownP1","getP1","hasP1","initP1","setP1","adoptStatus","disownStatus","hasStatus","initStatus","EncodeIndex","getSegmentNum","setSegmentNum","getSegmentId","setSegmentId","getSegmentIdEncode","setSegmentIdEncode","Type","AndroidLogEntry","getTs","setTs","getPriority","setPriority","getPid","setPid","getTid","setTid","getTag","setTag","setMessage","LogRotate","Plan_LongitudinalPlanSource","Plan_GpsTrajectory","adoptX","disownX","getX","hasX","initX","setX","adoptY","disownY","getY","hasY","initY","setY","Plan","getRadarStateMonoTime","setRadarStateMonoTime","getCommIssue","setCommIssue","adoptEventsDEPRECATED","disownEventsDEPRECATED","getEventsDEPRECATED","_EventsDEPRECATED","hasEventsDEPRECATED","initEventsDEPRECATED","setEventsDEPRECATED","getLateralValidDEPRECATED","setLateralValidDEPRECATED","adoptDPolyDEPRECATED","disownDPolyDEPRECATED","getDPolyDEPRECATED","hasDPolyDEPRECATED","initDPolyDEPRECATED","setDPolyDEPRECATED","getLaneWidthDEPRECATED","setLaneWidthDEPRECATED","getLongitudinalValidDEPRECATED","setLongitudinalValidDEPRECATED","getACruise","setACruise","getVTarget","setVTarget","getVTargetFuture","setVTargetFuture","getVMax","setVMax","getVStart","setVStart","getAStart","setAStart","getHasLead","setHasLead","getHasLeftLaneDEPRECATED","setHasLeftLaneDEPRECATED","getHasRightLaneDEPRECATED","setHasRightLaneDEPRECATED","getLongitudinalPlanSource","setLongitudinalPlanSource","adoptGpsTrajectory","disownGpsTrajectory","getGpsTrajectory","hasGpsTrajectory","initGpsTrajectory","setGpsTrajectory","getRadarValid","setRadarValid","getRadarCanError","setRadarCanError","getProcessingDelay","setProcessingDelay","GpsTrajectory","LongitudinalPlanSource","PathPlan","getLaneWidth","setLaneWidth","adoptDPoly","disownDPoly","getDPoly","hasDPoly","initDPoly","setDPoly","adoptCPoly","disownCPoly","getCPoly","hasCPoly","initCPoly","setCPoly","getCProb","setCProb","adoptLPoly","disownLPoly","getLPoly","hasLPoly","initLPoly","setLPoly","getLProb","setLProb","adoptRPoly","disownRPoly","getRPoly","hasRPoly","initRPoly","setRPoly","getRProb","setRProb","getRateSteers","setRateSteers","getMpcSolutionValid","setMpcSolutionValid","getParamsValid","setParamsValid","getModelValidDEPRECATED","setModelValidDEPRECATED","getAngleOffset","setAngleOffset","getSensorValid","setSensorValid","getPosenetValid","setPosenetValid","LiveLocationData_SensorSource","LiveLocationData_Accuracy","adoptPNEDError","disownPNEDError","getPNEDError","hasPNEDError","initPNEDError","setPNEDError","adoptVNEDError","disownVNEDError","getVNEDError","hasVNEDError","initVNEDError","setVNEDError","getRollError","setRollError","getPitchError","setPitchError","getHeadingError","setHeadingError","getEllipsoidSemiMajorError","setEllipsoidSemiMajorError","getEllipsoidSemiMinorError","setEllipsoidSemiMinorError","getEllipsoidOrientationError","setEllipsoidOrientationError","LiveLocationData","getLat","setLat","getLon","setLon","getAlt","setAlt","getRoll","setRoll","getPitch","setPitch","getHeading","setHeading","getWanderAngle","setWanderAngle","getTrackAngle","setTrackAngle","adoptAccel","disownAccel","getAccel","hasAccel","initAccel","setAccel","adoptAccuracy","disownAccuracy","hasAccuracy","initAccuracy","getFixMonoTime","setFixMonoTime","getGpsWeek","setGpsWeek","getTimeOfWeek","setTimeOfWeek","adoptPositionECEF","disownPositionECEF","getPositionECEF","hasPositionECEF","initPositionECEF","setPositionECEF","adoptPoseQuatECEF","disownPoseQuatECEF","getPoseQuatECEF","hasPoseQuatECEF","initPoseQuatECEF","setPoseQuatECEF","getPitchCalibration","setPitchCalibration","getYawCalibration","setYawCalibration","adoptImuFrame","disownImuFrame","getImuFrame","hasImuFrame","initImuFrame","setImuFrame","Accuracy","EthernetPacket","adoptPkt","disownPkt","getPkt","hasPkt","initPkt","setPkt","NavUpdate_Segment_Instruction","NavUpdate_LatLng","getLng","setLng","NavUpdate_Segment","adoptFrom","disownFrom","getFrom","hasFrom","initFrom","setFrom","adoptTo","disownTo","getTo","hasTo","initTo","setTo","getUpdateTime","setUpdateTime","getDistance","setDistance","getCrossTime","setCrossTime","getExitNo","setExitNo","getInstruction","setInstruction","adoptParts","disownParts","getParts","_Parts","hasParts","initParts","setParts","Instruction","NavUpdate","getIsNavigating","setIsNavigating","getCurSegment","setCurSegment","adoptSegments","disownSegments","getSegments","_Segments","hasSegments","initSegments","setSegments","LatLng","NavStatus_Address","getTitle","setTitle","getHouse","setHouse","getStreet","setStreet","getCity","setCity","getCountry","setCountry","NavStatus","adoptCurrentAddress","disownCurrentAddress","getCurrentAddress","hasCurrentAddress","initCurrentAddress","setCurrentAddress","Address","WifiScan_ChannelWidth","CellInfo","getRepr","setRepr","WifiScan","getBssid","setBssid","getSsid","setSsid","getCapabilities","setCapabilities","getFrequency","setFrequency","getLevel","setLevel","getCenterFreq0","setCenterFreq0","getCenterFreq1","setCenterFreq1","getChannelWidth","setChannelWidth","getOperatorFriendlyName","setOperatorFriendlyName","getVenueName","setVenueName","getIs80211mcResponder","setIs80211mcResponder","getPasspoint","setPasspoint","getDistanceCm","setDistanceCm","getDistanceSdCm","setDistanceSdCm","ChannelWidth","AndroidGnss_Measurements_Measurement_Constellation","AndroidGnss_Measurements_Measurement_State","AndroidGnss_Measurements_Measurement_MultipathIndicator","AndroidGnss_Measurements_Clock","getTimeNanos","setTimeNanos","getHardwareClockDiscontinuityCount","setHardwareClockDiscontinuityCount","getHasTimeUncertaintyNanos","setHasTimeUncertaintyNanos","getTimeUncertaintyNanos","setTimeUncertaintyNanos","getHasLeapSecond","setHasLeapSecond","getLeapSecond","setLeapSecond","getHasFullBiasNanos","setHasFullBiasNanos","getFullBiasNanos","setFullBiasNanos","getHasBiasNanos","setHasBiasNanos","getBiasNanos","setBiasNanos","getHasBiasUncertaintyNanos","setHasBiasUncertaintyNanos","getBiasUncertaintyNanos","setBiasUncertaintyNanos","getHasDriftNanosPerSecond","setHasDriftNanosPerSecond","getDriftNanosPerSecond","setDriftNanosPerSecond","getHasDriftUncertaintyNanosPerSecond","setHasDriftUncertaintyNanosPerSecond","getDriftUncertaintyNanosPerSecond","setDriftUncertaintyNanosPerSecond","AndroidGnss_Measurements_Measurement","getSvId","setSvId","getConstellation","setConstellation","getTimeOffsetNanos","setTimeOffsetNanos","getReceivedSvTimeNanos","setReceivedSvTimeNanos","getReceivedSvTimeUncertaintyNanos","setReceivedSvTimeUncertaintyNanos","getCn0DbHz","setCn0DbHz","getPseudorangeRateMetersPerSecond","setPseudorangeRateMetersPerSecond","getPseudorangeRateUncertaintyMetersPerSecond","setPseudorangeRateUncertaintyMetersPerSecond","getAccumulatedDeltaRangeState","setAccumulatedDeltaRangeState","getAccumulatedDeltaRangeMeters","setAccumulatedDeltaRangeMeters","getAccumulatedDeltaRangeUncertaintyMeters","setAccumulatedDeltaRangeUncertaintyMeters","getHasCarrierFrequencyHz","setHasCarrierFrequencyHz","getCarrierFrequencyHz","setCarrierFrequencyHz","getHasCarrierCycles","setHasCarrierCycles","getCarrierCycles","setCarrierCycles","getHasCarrierPhase","setHasCarrierPhase","getCarrierPhase","setCarrierPhase","getHasCarrierPhaseUncertainty","setHasCarrierPhaseUncertainty","getCarrierPhaseUncertainty","setCarrierPhaseUncertainty","getHasSnrInDb","setHasSnrInDb","getSnrInDb","setSnrInDb","getMultipathIndicator","setMultipathIndicator","Constellation","State","MultipathIndicator","AndroidGnss_NavigationMessage_Status","AndroidGnss_Measurements","adoptClock","disownClock","getClock","hasClock","initClock","setClock","adoptMeasurements","disownMeasurements","getMeasurements","_Measurements","hasMeasurements","initMeasurements","setMeasurements","Clock","Measurement","AndroidGnss_Which","AndroidGnss_NavigationMessage","getMessageId","setMessageId","getSubmessageId","setSubmessageId","adoptData","disownData","hasData","setData","Status","QcomGnss_MeasurementSource","QcomGnss_SVObservationState","AndroidGnss","isMeasurements","adoptNavigationMessage","disownNavigationMessage","getNavigationMessage","hasNavigationMessage","initNavigationMessage","isNavigationMessage","setNavigationMessage","MEASUREMENTS","NAVIGATION_MESSAGE","Measurements","NavigationMessage","QcomGnss_MeasurementStatus","getSubMillisecondIsValid","setSubMillisecondIsValid","getSubBitTimeIsKnown","setSubBitTimeIsKnown","getSatelliteTimeIsKnown","setSatelliteTimeIsKnown","getBitEdgeConfirmedFromSignal","setBitEdgeConfirmedFromSignal","getMeasuredVelocity","setMeasuredVelocity","getFineOrCoarseVelocity","setFineOrCoarseVelocity","getLockPointValid","setLockPointValid","getLockPointPositive","setLockPointPositive","getLastUpdateFromDifference","setLastUpdateFromDifference","getLastUpdateFromVelocityDifference","setLastUpdateFromVelocityDifference","getStrongIndicationOfCrossCorelation","setStrongIndicationOfCrossCorelation","getTentativeMeasurement","setTentativeMeasurement","getMeasurementNotUsable","setMeasurementNotUsable","getSirCheckIsNeeded","setSirCheckIsNeeded","getProbationMode","setProbationMode","getGlonassMeanderBitEdgeValid","setGlonassMeanderBitEdgeValid","getGlonassTimeMarkValid","setGlonassTimeMarkValid","getGpsRoundRobinRxDiversity","setGpsRoundRobinRxDiversity","getGpsRxDiversity","setGpsRxDiversity","getGpsLowBandwidthRxDiversityCombined","setGpsLowBandwidthRxDiversityCombined","getGpsHighBandwidthNu4","setGpsHighBandwidthNu4","getGpsHighBandwidthNu8","setGpsHighBandwidthNu8","getGpsHighBandwidthUniform","setGpsHighBandwidthUniform","getImdJammingIndicator","setImdJammingIndicator","getLteB13TxJammingIndicator","setLteB13TxJammingIndicator","getFreshMeasurementIndicator","setFreshMeasurementIndicator","getMultipathEstimateIsValid","setMultipathEstimateIsValid","getDirectionIsValid","setDirectionIsValid","QcomGnss_MeasurementReport_SV","getObservationState","setObservationState","getObservations","setObservations","getGoodObservations","setGoodObservations","getGpsParityErrorCount","setGpsParityErrorCount","getGlonassFrequencyIndex","setGlonassFrequencyIndex","getGlonassHemmingErrorCount","setGlonassHemmingErrorCount","getFilterStages","setFilterStages","getCarrierNoise","setCarrierNoise","getLatency","setLatency","getPredetectInterval","setPredetectInterval","getPostdetections","setPostdetections","getUnfilteredMeasurementIntegral","setUnfilteredMeasurementIntegral","getUnfilteredMeasurementFraction","setUnfilteredMeasurementFraction","getUnfilteredTimeUncertainty","setUnfilteredTimeUncertainty","getUnfilteredSpeed","setUnfilteredSpeed","getUnfilteredSpeedUncertainty","setUnfilteredSpeedUncertainty","adoptMeasurementStatus","disownMeasurementStatus","getMeasurementStatus","hasMeasurementStatus","initMeasurementStatus","setMeasurementStatus","getMultipathEstimate","setMultipathEstimate","getAzimuth","setAzimuth","getElevation","setElevation","getCarrierPhaseCyclesIntegral","setCarrierPhaseCyclesIntegral","getCarrierPhaseCyclesFraction","setCarrierPhaseCyclesFraction","getFineSpeed","setFineSpeed","getFineSpeedUncertainty","setFineSpeedUncertainty","getCycleSlipCount","setCycleSlipCount","QcomGnss_MeasurementReport","getFCount","setFCount","getGlonassCycleNumber","setGlonassCycleNumber","getGlonassNumberOfDays","setGlonassNumberOfDays","getMilliseconds","setMilliseconds","getTimeBias","setTimeBias","getClockTimeUncertainty","setClockTimeUncertainty","getClockFrequencyBias","setClockFrequencyBias","getClockFrequencyUncertainty","setClockFrequencyUncertainty","adoptSv","disownSv","getSv","_Sv","hasSv","initSv","setSv","SV","QcomGnss_ClockReport","getHasFCount","setHasFCount","getHasGpsWeek","setHasGpsWeek","getHasGpsMilliseconds","setHasGpsMilliseconds","getGpsMilliseconds","setGpsMilliseconds","getGpsTimeBias","setGpsTimeBias","getGpsClockTimeUncertainty","setGpsClockTimeUncertainty","getGpsClockSource","setGpsClockSource","getHasGlonassYear","setHasGlonassYear","getGlonassYear","setGlonassYear","getHasGlonassDay","setHasGlonassDay","getGlonassDay","setGlonassDay","getHasGlonassMilliseconds","setHasGlonassMilliseconds","getGlonassMilliseconds","setGlonassMilliseconds","getGlonassTimeBias","setGlonassTimeBias","getGlonassClockTimeUncertainty","setGlonassClockTimeUncertainty","getGlonassClockSource","setGlonassClockSource","getBdsWeek","setBdsWeek","getBdsMilliseconds","setBdsMilliseconds","getBdsTimeBias","setBdsTimeBias","getBdsClockTimeUncertainty","setBdsClockTimeUncertainty","getBdsClockSource","setBdsClockSource","getGalWeek","setGalWeek","getGalMilliseconds","setGalMilliseconds","getGalTimeBias","setGalTimeBias","getGalClockTimeUncertainty","setGalClockTimeUncertainty","getGalClockSource","setGalClockSource","getFrequencySource","setFrequencySource","getGpsLeapSeconds","setGpsLeapSeconds","getGpsLeapSecondsUncertainty","setGpsLeapSecondsUncertainty","getGpsLeapSecondsSource","setGpsLeapSecondsSource","getGpsToGlonassTimeBiasMilliseconds","setGpsToGlonassTimeBiasMilliseconds","getGpsToGlonassTimeBiasMillisecondsUncertainty","setGpsToGlonassTimeBiasMillisecondsUncertainty","getGpsToBdsTimeBiasMilliseconds","setGpsToBdsTimeBiasMilliseconds","getGpsToBdsTimeBiasMillisecondsUncertainty","setGpsToBdsTimeBiasMillisecondsUncertainty","getBdsToGloTimeBiasMilliseconds","setBdsToGloTimeBiasMilliseconds","getBdsToGloTimeBiasMillisecondsUncertainty","setBdsToGloTimeBiasMillisecondsUncertainty","getGpsToGalTimeBiasMilliseconds","setGpsToGalTimeBiasMilliseconds","getGpsToGalTimeBiasMillisecondsUncertainty","setGpsToGalTimeBiasMillisecondsUncertainty","getGalToGloTimeBiasMilliseconds","setGalToGloTimeBiasMilliseconds","getGalToGloTimeBiasMillisecondsUncertainty","setGalToGloTimeBiasMillisecondsUncertainty","getGalToBdsTimeBiasMilliseconds","setGalToBdsTimeBiasMilliseconds","getGalToBdsTimeBiasMillisecondsUncertainty","setGalToBdsTimeBiasMillisecondsUncertainty","getHasRtcTime","setHasRtcTime","getSystemRtcTime","setSystemRtcTime","getFCountOffset","setFCountOffset","getLpmRtcCount","setLpmRtcCount","getClockResets","setClockResets","QcomGnss_DrMeasurementReport_SV","getRfLoss","setRfLoss","getFilteredMeasurementFraction","setFilteredMeasurementFraction","getFilteredMeasurementIntegral","setFilteredMeasurementIntegral","getFilteredTimeUncertainty","setFilteredTimeUncertainty","getFilteredSpeed","setFilteredSpeed","getFilteredSpeedUncertainty","setFilteredSpeedUncertainty","getDopplerAcceleration","setDopplerAcceleration","getParityErrorCount","setParityErrorCount","getGoodParity","setGoodParity","QcomGnss_DrMeasurementReport","getReason","setReason","getSeqNum","setSeqNum","getSeqMax","setSeqMax","getSystemRtcValid","setSystemRtcValid","getGpsTimeBiasMs","setGpsTimeBiasMs","getGpsClockTimeUncertaintyMs","setGpsClockTimeUncertaintyMs","QcomGnss_Which","QcomGnss_DrSvPolyReport","getFrequencyIndex","setFrequencyIndex","getHasPosition","setHasPosition","getHasIono","setHasIono","getHasTropo","setHasTropo","getHasElevation","setHasElevation","getPolyFromXtra","setPolyFromXtra","getHasSbasIono","setHasSbasIono","getIode","setIode","getT0","setT0","adoptXyz0","disownXyz0","getXyz0","hasXyz0","initXyz0","setXyz0","adoptXyzN","disownXyzN","getXyzN","hasXyzN","initXyzN","setXyzN","adoptOther","disownOther","getOther","hasOther","initOther","setOther","getPositionUncertainty","setPositionUncertainty","getIonoDelay","setIonoDelay","getIonoDot","setIonoDot","getSbasIonoDelay","setSbasIonoDelay","getSbasIonoDot","setSbasIonoDot","getTropoDelay","setTropoDelay","getElevationDot","setElevationDot","getElevationUncertainty","setElevationUncertainty","adoptVelocityCoeff","disownVelocityCoeff","getVelocityCoeff","hasVelocityCoeff","initVelocityCoeff","setVelocityCoeff","QcomGnss","getLogTs","setLogTs","adoptMeasurementReport","disownMeasurementReport","getMeasurementReport","hasMeasurementReport","initMeasurementReport","isMeasurementReport","setMeasurementReport","adoptClockReport","disownClockReport","getClockReport","hasClockReport","initClockReport","isClockReport","setClockReport","adoptDrMeasurementReport","disownDrMeasurementReport","getDrMeasurementReport","hasDrMeasurementReport","initDrMeasurementReport","isDrMeasurementReport","setDrMeasurementReport","adoptDrSvPoly","disownDrSvPoly","getDrSvPoly","hasDrSvPoly","initDrSvPoly","isDrSvPoly","setDrSvPoly","adoptRawLog","disownRawLog","getRawLog","hasRawLog","initRawLog","isRawLog","setRawLog","MEASUREMENT_REPORT","CLOCK_REPORT","DR_MEASUREMENT_REPORT","DR_SV_POLY","RAW_LOG","MeasurementSource","SVObservationState","MeasurementStatus","MeasurementReport","ClockReport","DrMeasurementReport","DrSvPolyReport","LidarPts","adoptR","disownR","getR","hasR","initR","setR","adoptTheta","disownTheta","getTheta","hasTheta","initTheta","setTheta","adoptReflect","disownReflect","getReflect","hasReflect","initReflect","setReflect","getIdx","setIdx","ProcLog_Process","getPpid","setPpid","getCpuUser","setCpuUser","getCpuSystem","setCpuSystem","getCpuChildrenUser","setCpuChildrenUser","getCpuChildrenSystem","setCpuChildrenSystem","getNice","setNice","getNumThreads","setNumThreads","getStartTime","setStartTime","getMemVms","setMemVms","getMemRss","setMemRss","getProcessor","setProcessor","adoptCmdline","disownCmdline","getCmdline","hasCmdline","initCmdline","setCmdline","getExe","setExe","ProcLog_CPUTimes","getCpuNum","setCpuNum","getSystem","setSystem","getIdle","setIdle","getIowait","setIowait","getIrq","setIrq","getSoftirq","setSoftirq","ProcLog_Mem","getTotal","setTotal","getFree","setFree","getAvailable","setAvailable","getBuffers","setBuffers","getCached","setCached","getInactive","setInactive","getShared","setShared","ProcLog","adoptCpuTimes","disownCpuTimes","getCpuTimes","_CpuTimes","hasCpuTimes","initCpuTimes","setCpuTimes","adoptMem","disownMem","hasMem","initMem","adoptProcs","disownProcs","getProcs","_Procs","hasProcs","initProcs","setProcs","Process","CPUTimes","UbloxGnss_MeasurementReport_ReceiverStatus","getLeapSecValid","setLeapSecValid","getClkReset","setClkReset","UbloxGnss_MeasurementReport_Measurement_TrackingStatus","getPseudorangeValid","setPseudorangeValid","getCarrierPhaseValid","setCarrierPhaseValid","getHalfCycleValid","setHalfCycleValid","getHalfCycleSubtracted","setHalfCycleSubtracted","UbloxGnss_MeasurementReport_Measurement","adoptTrackingStatus","disownTrackingStatus","getTrackingStatus","hasTrackingStatus","initTrackingStatus","setTrackingStatus","getPseudorange","setPseudorange","getDoppler","setDoppler","getGnssId","setGnssId","getLocktime","setLocktime","getCno","setCno","getPseudorangeStdev","setPseudorangeStdev","getCarrierPhaseStdev","setCarrierPhaseStdev","getDopplerStdev","setDopplerStdev","getSigId","setSigId","TrackingStatus","UbloxGnss_MeasurementReport","getRcvTow","setRcvTow","getLeapSeconds","setLeapSeconds","adoptReceiverStatus","disownReceiverStatus","getReceiverStatus","hasReceiverStatus","initReceiverStatus","setReceiverStatus","getNumMeas","setNumMeas","ReceiverStatus","UbloxGnss_Ephemeris","getYear","setYear","setMonth","getDay","setDay","getHour","setHour","getMinute","setMinute","getSecond","setSecond","getAf0","setAf0","getAf1","setAf1","getAf2","setAf2","getCrs","setCrs","getDeltaN","setDeltaN","getM0","setM0","getCuc","setCuc","getEcc","setEcc","getCus","setCus","getA","setA","getToe","setToe","getCic","setCic","getOmega0","setOmega0","getCis","setCis","getI0","setI0","getCrc","setCrc","getOmega","setOmega","getOmegaDot","setOmegaDot","getIDot","setIDot","getCodesL2","setCodesL2","getL2","setL2","getSvAcc","setSvAcc","getSvHealth","setSvHealth","getTgd","setTgd","getIodc","setIodc","getTransmissionTime","setTransmissionTime","getFitInterval","setFitInterval","getToc","setToc","getIonoCoeffsValid","setIonoCoeffsValid","adoptIonoAlpha","disownIonoAlpha","getIonoAlpha","hasIonoAlpha","initIonoAlpha","setIonoAlpha","adoptIonoBeta","disownIonoBeta","getIonoBeta","hasIonoBeta","initIonoBeta","setIonoBeta","UbloxGnss_Which","UbloxGnss_IonoData","getTow","setTow","getHealthValid","setHealthValid","UbloxGnss","adoptEphemeris","disownEphemeris","getEphemeris","hasEphemeris","initEphemeris","isEphemeris","setEphemeris","adoptIonoData","disownIonoData","getIonoData","hasIonoData","initIonoData","isIonoData","setIonoData","EPHEMERIS","IONO_DATA","Ephemeris","IonoData","Clocks","getBootTimeNanos","setBootTimeNanos","getMonotonicNanos","setMonotonicNanos","getMonotonicRawNanos","setMonotonicRawNanos","getWallTimeNanos","setWallTimeNanos","getModemUptimeMillis","setModemUptimeMillis","LiveMpcData","adoptPsi","disownPsi","getPsi","hasPsi","initPsi","setPsi","adoptDelta","disownDelta","hasDelta","initDelta","getQpIterations","setQpIterations","getCalculationTime","setCalculationTime","getCost","setCost","LiveLongitudinalMpcData","adoptXEgo","disownXEgo","getXEgo","hasXEgo","initXEgo","setXEgo","adoptVEgo","disownVEgo","hasVEgo","initVEgo","adoptAEgo","disownAEgo","getAEgo","hasAEgo","initAEgo","setAEgo","adoptXLead","disownXLead","getXLead","hasXLead","initXLead","setXLead","adoptVLead","disownVLead","hasVLead","initVLead","adoptALead","disownALead","getALead","hasALead","initALead","setALead","getMpcId","setMpcId","ECEFPointDEPRECATED","getZ","setZ","ECEFPoint","GPSPlannerPoints","adoptCurPosDEPRECATED","disownCurPosDEPRECATED","getCurPosDEPRECATED","hasCurPosDEPRECATED","initCurPosDEPRECATED","setCurPosDEPRECATED","adoptPointsDEPRECATED","disownPointsDEPRECATED","getPointsDEPRECATED","_PointsDEPRECATED","hasPointsDEPRECATED","initPointsDEPRECATED","setPointsDEPRECATED","adoptCurPos","disownCurPos","getCurPos","hasCurPos","initCurPos","setCurPos","_Points","getValid","setValid","getTrackName","setTrackName","getSpeedLimit","setSpeedLimit","getAccelTarget","setAccelTarget","TrafficEvent_Type","TrafficEvent_Action","GPSPlannerPlan","getXLookahead","setXLookahead","TrafficEvent","getAction","setAction","getResuming","setResuming","Action","OrbslamCorrection","getCorrectionMonoTime","setCorrectionMonoTime","adoptPrePositionECEF","disownPrePositionECEF","getPrePositionECEF","hasPrePositionECEF","initPrePositionECEF","setPrePositionECEF","adoptPostPositionECEF","disownPostPositionECEF","getPostPositionECEF","hasPostPositionECEF","initPostPositionECEF","setPostPositionECEF","adoptPrePoseQuatECEF","disownPrePoseQuatECEF","getPrePoseQuatECEF","hasPrePoseQuatECEF","initPrePoseQuatECEF","setPrePoseQuatECEF","adoptPostPoseQuatECEF","disownPostPoseQuatECEF","getPostPoseQuatECEF","hasPostPoseQuatECEF","initPostPoseQuatECEF","setPostPoseQuatECEF","getNumInliers","setNumInliers","UiNavigationEvent_Type","UiNavigationEvent_Status","OrbObservation","getObservationMonoTime","setObservationMonoTime","adoptNormalizedCoordinates","disownNormalizedCoordinates","getNormalizedCoordinates","hasNormalizedCoordinates","initNormalizedCoordinates","setNormalizedCoordinates","adoptLocationECEF","disownLocationECEF","getLocationECEF","hasLocationECEF","initLocationECEF","setLocationECEF","getMatchDistance","setMatchDistance","UiLayoutState_App","UiNavigationEvent","getDistanceTo","setDistanceTo","adoptEndRoadPointDEPRECATED","disownEndRoadPointDEPRECATED","getEndRoadPointDEPRECATED","hasEndRoadPointDEPRECATED","initEndRoadPointDEPRECATED","setEndRoadPointDEPRECATED","adoptEndRoadPoint","disownEndRoadPoint","getEndRoadPoint","hasEndRoadPoint","initEndRoadPoint","setEndRoadPoint","UiLayoutState","getActiveApp","setActiveApp","getSidebarCollapsed","setSidebarCollapsed","getMapEnabled","setMapEnabled","App","Joystick","adoptAxes","disownAxes","getAxes","hasAxes","initAxes","setAxes","adoptButtons","disownButtons","getButtons","hasButtons","initButtons","setButtons","OrbOdometry","getEndMonoTime","setEndMonoTime","adoptF","disownF","hasF","initF","getErr","setErr","getInliers","setInliers","adoptMatches","disownMatches","getMatches","hasMatches","initMatches","setMatches","OrbFeatures","adoptXs","disownXs","getXs","hasXs","initXs","setXs","adoptYs","disownYs","getYs","hasYs","initYs","setYs","adoptDescriptors","disownDescriptors","getDescriptors","hasDescriptors","initDescriptors","setDescriptors","adoptOctaves","disownOctaves","getOctaves","hasOctaves","initOctaves","setOctaves","getTimestampLastEof","setTimestampLastEof","OrbFeaturesSummary","getFeatureCount","setFeatureCount","getMatchCount","setMatchCount","getComputeNs","setComputeNs","OrbKeyFrame","adoptPos","disownPos","getPos","hasPos","initPos","setPos","adoptDpos","disownDpos","getDpos","_Dpos","hasDpos","initDpos","setDpos","DriverMonitoring","adoptDescriptorDEPRECATED","disownDescriptorDEPRECATED","getDescriptorDEPRECATED","hasDescriptorDEPRECATED","initDescriptorDEPRECATED","setDescriptorDEPRECATED","getStdDEPRECATED","setStdDEPRECATED","adoptFaceOrientation","disownFaceOrientation","getFaceOrientation","hasFaceOrientation","initFaceOrientation","setFaceOrientation","adoptFacePosition","disownFacePosition","getFacePosition","hasFacePosition","initFacePosition","setFacePosition","getFaceProb","setFaceProb","getLeftEyeProb","setLeftEyeProb","getRightEyeProb","setRightEyeProb","getLeftBlinkProb","setLeftBlinkProb","getRightBlinkProb","setRightBlinkProb","Boot","adoptLastKmsg","disownLastKmsg","getLastKmsg","hasLastKmsg","initLastKmsg","setLastKmsg","adoptLastPmsg","disownLastPmsg","getLastPmsg","hasLastPmsg","initLastPmsg","setLastPmsg","LiveParametersData","getGyroBias","setGyroBias","getAngleOffsetAverage","setAngleOffsetAverage","getStiffnessFactor","setStiffnessFactor","getSteerRatio","setSteerRatio","getYawRate","setYawRate","getPosenetSpeed","setPosenetSpeed","LiveMapData","getSpeedLimitValid","setSpeedLimitValid","getSpeedAdvisoryValid","setSpeedAdvisoryValid","getSpeedAdvisory","setSpeedAdvisory","getSpeedLimitAheadValid","setSpeedLimitAheadValid","getSpeedLimitAhead","setSpeedLimitAhead","getSpeedLimitAheadDistance","setSpeedLimitAheadDistance","getCurvatureValid","setCurvatureValid","getWayId","setWayId","adoptRoadX","disownRoadX","getRoadX","hasRoadX","initRoadX","setRoadX","adoptRoadY","disownRoadY","getRoadY","hasRoadY","initRoadY","setRoadY","adoptLastGps","disownLastGps","getLastGps","hasLastGps","initLastGps","setLastGps","adoptRoadCurvatureX","disownRoadCurvatureX","getRoadCurvatureX","hasRoadCurvatureX","initRoadCurvatureX","setRoadCurvatureX","adoptRoadCurvature","disownRoadCurvature","getRoadCurvature","hasRoadCurvature","initRoadCurvature","setRoadCurvature","getDistToTurn","setDistToTurn","CameraOdometry","adoptTrans","disownTrans","getTrans","hasTrans","initTrans","setTrans","adoptRot","disownRot","getRot","hasRot","initRot","setRot","adoptTransStd","disownTransStd","getTransStd","hasTransStd","initTransStd","setTransStd","adoptRotStd","disownRotStd","getRotStd","hasRotStd","initRotStd","setRotStd","Event_Which","KalmanOdometry","getLogMonoTime","setLogMonoTime","defaultValid","adoptInitData","disownInitData","getInitData","hasInitData","initInitData","isInitData","setInitData","adoptFrame","disownFrame","getFrame","hasFrame","initFrame","isFrame","setFrame","adoptGpsNMEA","disownGpsNMEA","getGpsNMEA","hasGpsNMEA","initGpsNMEA","isGpsNMEA","setGpsNMEA","adoptSensorEventDEPRECATED","disownSensorEventDEPRECATED","getSensorEventDEPRECATED","hasSensorEventDEPRECATED","initSensorEventDEPRECATED","isSensorEventDEPRECATED","setSensorEventDEPRECATED","adoptCan","disownCan","getCan","_Can","hasCan","initCan","isCan","setCan","adoptThermal","disownThermal","getThermal","hasThermal","initThermal","isThermal","setThermal","adoptControlsState","disownControlsState","getControlsState","hasControlsState","initControlsState","isControlsState","setControlsState","adoptLiveEventDEPRECATED","disownLiveEventDEPRECATED","getLiveEventDEPRECATED","_LiveEventDEPRECATED","hasLiveEventDEPRECATED","initLiveEventDEPRECATED","isLiveEventDEPRECATED","setLiveEventDEPRECATED","adoptModel","disownModel","hasModel","initModel","isModel","adoptFeatures","disownFeatures","getFeatures","hasFeatures","initFeatures","isFeatures","setFeatures","adoptSensorEvents","disownSensorEvents","getSensorEvents","_SensorEvents","hasSensorEvents","initSensorEvents","isSensorEvents","setSensorEvents","adoptHealth","disownHealth","getHealth","hasHealth","initHealth","isHealth","setHealth","adoptRadarState","disownRadarState","getRadarState","hasRadarState","initRadarState","isRadarState","setRadarState","adoptLiveUIDEPRECATED","disownLiveUIDEPRECATED","getLiveUIDEPRECATED","hasLiveUIDEPRECATED","initLiveUIDEPRECATED","isLiveUIDEPRECATED","setLiveUIDEPRECATED","adoptEncodeIdx","disownEncodeIdx","getEncodeIdx","hasEncodeIdx","initEncodeIdx","isEncodeIdx","setEncodeIdx","adoptLiveTracks","disownLiveTracks","getLiveTracks","_LiveTracks","hasLiveTracks","initLiveTracks","isLiveTracks","setLiveTracks","adoptSendcan","disownSendcan","getSendcan","_Sendcan","hasSendcan","initSendcan","isSendcan","setSendcan","getLogMessage","isLogMessage","setLogMessage","adoptLiveCalibration","disownLiveCalibration","getLiveCalibration","hasLiveCalibration","initLiveCalibration","isLiveCalibration","setLiveCalibration","adoptAndroidLogEntry","disownAndroidLogEntry","getAndroidLogEntry","hasAndroidLogEntry","initAndroidLogEntry","isAndroidLogEntry","setAndroidLogEntry","adoptGpsLocation","disownGpsLocation","getGpsLocation","hasGpsLocation","initGpsLocation","isGpsLocation","setGpsLocation","adoptCarState","disownCarState","getCarState","CarState","hasCarState","initCarState","isCarState","setCarState","adoptCarControl","disownCarControl","getCarControl","CarControl","hasCarControl","initCarControl","isCarControl","setCarControl","adoptPlan","disownPlan","getPlan","hasPlan","initPlan","isPlan","setPlan","adoptLiveLocation","disownLiveLocation","getLiveLocation","hasLiveLocation","initLiveLocation","isLiveLocation","setLiveLocation","adoptEthernetData","disownEthernetData","getEthernetData","_EthernetData","hasEthernetData","initEthernetData","isEthernetData","setEthernetData","adoptNavUpdate","disownNavUpdate","getNavUpdate","hasNavUpdate","initNavUpdate","isNavUpdate","setNavUpdate","adoptCellInfo","disownCellInfo","getCellInfo","_CellInfo","hasCellInfo","initCellInfo","isCellInfo","setCellInfo","adoptWifiScan","disownWifiScan","getWifiScan","_WifiScan","hasWifiScan","initWifiScan","isWifiScan","setWifiScan","adoptAndroidGnss","disownAndroidGnss","getAndroidGnss","hasAndroidGnss","initAndroidGnss","isAndroidGnss","setAndroidGnss","adoptQcomGnss","disownQcomGnss","getQcomGnss","hasQcomGnss","initQcomGnss","isQcomGnss","setQcomGnss","adoptLidarPts","disownLidarPts","getLidarPts","hasLidarPts","initLidarPts","isLidarPts","setLidarPts","adoptProcLog","disownProcLog","getProcLog","hasProcLog","initProcLog","isProcLog","setProcLog","adoptUbloxGnss","disownUbloxGnss","getUbloxGnss","hasUbloxGnss","initUbloxGnss","isUbloxGnss","setUbloxGnss","adoptClocks","disownClocks","getClocks","hasClocks","initClocks","isClocks","setClocks","adoptLiveMpc","disownLiveMpc","getLiveMpc","hasLiveMpc","initLiveMpc","isLiveMpc","setLiveMpc","adoptLiveLongitudinalMpc","disownLiveLongitudinalMpc","getLiveLongitudinalMpc","hasLiveLongitudinalMpc","initLiveLongitudinalMpc","isLiveLongitudinalMpc","setLiveLongitudinalMpc","adoptNavStatus","disownNavStatus","getNavStatus","hasNavStatus","initNavStatus","isNavStatus","setNavStatus","adoptUbloxRaw","disownUbloxRaw","getUbloxRaw","hasUbloxRaw","initUbloxRaw","isUbloxRaw","setUbloxRaw","adoptGpsPlannerPoints","disownGpsPlannerPoints","getGpsPlannerPoints","hasGpsPlannerPoints","initGpsPlannerPoints","isGpsPlannerPoints","setGpsPlannerPoints","adoptGpsPlannerPlan","disownGpsPlannerPlan","getGpsPlannerPlan","hasGpsPlannerPlan","initGpsPlannerPlan","isGpsPlannerPlan","setGpsPlannerPlan","adoptApplanixRaw","disownApplanixRaw","getApplanixRaw","hasApplanixRaw","initApplanixRaw","isApplanixRaw","setApplanixRaw","adoptTrafficEvents","disownTrafficEvents","getTrafficEvents","_TrafficEvents","hasTrafficEvents","initTrafficEvents","isTrafficEvents","setTrafficEvents","adoptLiveLocationTiming","disownLiveLocationTiming","getLiveLocationTiming","hasLiveLocationTiming","initLiveLocationTiming","isLiveLocationTiming","setLiveLocationTiming","adoptOrbslamCorrectionDEPRECATED","disownOrbslamCorrectionDEPRECATED","getOrbslamCorrectionDEPRECATED","hasOrbslamCorrectionDEPRECATED","initOrbslamCorrectionDEPRECATED","isOrbslamCorrectionDEPRECATED","setOrbslamCorrectionDEPRECATED","adoptLiveLocationCorrected","disownLiveLocationCorrected","getLiveLocationCorrected","hasLiveLocationCorrected","initLiveLocationCorrected","isLiveLocationCorrected","setLiveLocationCorrected","adoptOrbObservation","disownOrbObservation","getOrbObservation","_OrbObservation","hasOrbObservation","initOrbObservation","isOrbObservation","setOrbObservation","adoptGpsLocationExternal","disownGpsLocationExternal","getGpsLocationExternal","hasGpsLocationExternal","initGpsLocationExternal","isGpsLocationExternal","setGpsLocationExternal","adoptLocation","disownLocation","getLocation","hasLocation","initLocation","isLocation","setLocation","adoptUiNavigationEvent","disownUiNavigationEvent","getUiNavigationEvent","hasUiNavigationEvent","initUiNavigationEvent","isUiNavigationEvent","setUiNavigationEvent","adoptLiveLocationKalman","disownLiveLocationKalman","getLiveLocationKalman","hasLiveLocationKalman","initLiveLocationKalman","isLiveLocationKalman","setLiveLocationKalman","adoptTestJoystick","disownTestJoystick","getTestJoystick","hasTestJoystick","initTestJoystick","isTestJoystick","setTestJoystick","adoptOrbOdometry","disownOrbOdometry","getOrbOdometry","hasOrbOdometry","initOrbOdometry","isOrbOdometry","setOrbOdometry","adoptOrbFeatures","disownOrbFeatures","getOrbFeatures","hasOrbFeatures","initOrbFeatures","isOrbFeatures","setOrbFeatures","adoptApplanixLocation","disownApplanixLocation","getApplanixLocation","hasApplanixLocation","initApplanixLocation","isApplanixLocation","setApplanixLocation","adoptOrbKeyFrame","disownOrbKeyFrame","getOrbKeyFrame","hasOrbKeyFrame","initOrbKeyFrame","isOrbKeyFrame","setOrbKeyFrame","adoptUiLayoutState","disownUiLayoutState","getUiLayoutState","hasUiLayoutState","initUiLayoutState","isUiLayoutState","setUiLayoutState","adoptOrbFeaturesSummary","disownOrbFeaturesSummary","getOrbFeaturesSummary","hasOrbFeaturesSummary","initOrbFeaturesSummary","isOrbFeaturesSummary","setOrbFeaturesSummary","adoptDriverMonitoring","disownDriverMonitoring","getDriverMonitoring","hasDriverMonitoring","initDriverMonitoring","isDriverMonitoring","setDriverMonitoring","adoptBoot","disownBoot","getBoot","hasBoot","initBoot","isBoot","setBoot","adoptLiveParameters","disownLiveParameters","getLiveParameters","hasLiveParameters","initLiveParameters","isLiveParameters","setLiveParameters","adoptLiveMapData","disownLiveMapData","getLiveMapData","hasLiveMapData","initLiveMapData","isLiveMapData","setLiveMapData","adoptCameraOdometry","disownCameraOdometry","getCameraOdometry","hasCameraOdometry","initCameraOdometry","isCameraOdometry","setCameraOdometry","adoptPathPlan","disownPathPlan","getPathPlan","hasPathPlan","initPathPlan","isPathPlan","setPathPlan","adoptKalmanOdometry","disownKalmanOdometry","getKalmanOdometry","hasKalmanOdometry","initKalmanOdometry","isKalmanOdometry","setKalmanOdometry","isThumbnail","adoptCarEvents","disownCarEvents","getCarEvents","_CarEvents","hasCarEvents","initCarEvents","isCarEvents","setCarEvents","adoptCarParams","disownCarParams","getCarParams","CarParams","hasCarParams","initCarParams","isCarParams","setCarParams","INIT_DATA","FRAME","GPS_NMEA","SENSOR_EVENT_DEPRECATED","CAN","THERMAL","CONTROLS_STATE","LIVE_EVENT_DEPRECATED","MODEL","FEATURES","SENSOR_EVENTS","HEALTH","RADAR_STATE","LIVE_UIDEPRECATED","ENCODE_IDX","LIVE_TRACKS","SENDCAN","LOG_MESSAGE","LIVE_CALIBRATION","ANDROID_LOG_ENTRY","GPS_LOCATION","CAR_STATE","CAR_CONTROL","PLAN","LIVE_LOCATION","ETHERNET_DATA","NAV_UPDATE","CELL_INFO","WIFI_SCAN","ANDROID_GNSS","QCOM_GNSS","LIDAR_PTS","PROC_LOG","UBLOX_GNSS","CLOCKS","LIVE_MPC","LIVE_LONGITUDINAL_MPC","NAV_STATUS","UBLOX_RAW","GPS_PLANNER_POINTS","GPS_PLANNER_PLAN","APPLANIX_RAW","TRAFFIC_EVENTS","LIVE_LOCATION_TIMING","ORBSLAM_CORRECTION_DEPRECATED","LIVE_LOCATION_CORRECTED","ORB_OBSERVATION","GPS_LOCATION_EXTERNAL","LOCATION","UI_NAVIGATION_EVENT","LIVE_LOCATION_KALMAN","TEST_JOYSTICK","ORB_ODOMETRY","ORB_FEATURES","APPLANIX_LOCATION","ORB_KEY_FRAME","UI_LAYOUT_STATE","ORB_FEATURES_SUMMARY","DRIVER_MONITORING","BOOT","LIVE_PARAMETERS","LIVE_MAP_DATA","CAMERA_ODOMETRY","PATH_PLAN","KALMAN_ODOMETRY","THUMBNAIL","CAR_EVENTS","CAR_PARAMS","CarEvent","CarEvent_EventName","getEnable","setEnable","getNoEntry","setNoEntry","getWarning","setWarning","getUserDisable","setUserDisable","getSoftDisable","setSoftDisable","getImmediateDisable","setImmediateDisable","getPreEnable","setPreEnable","getPermanent","setPermanent","EventName","CarState_WheelSpeeds","getFl","setFl","getFr","setFr","getRl","setRl","getRr","setRr","CarState_GearShifter","CarState_ButtonEvent_Type","CarState_CruiseState","getSpeedOffset","setSpeedOffset","getStandstill","setStandstill","CarState_ButtonEvent","getPressed","setPressed","RadarData_Error","adoptErrorsDEPRECATED","disownErrorsDEPRECATED","getErrorsDEPRECATED","hasErrorsDEPRECATED","initErrorsDEPRECATED","setErrorsDEPRECATED","adoptEvents","disownEvents","getEvents","_Events","hasEvents","initEvents","setEvents","adoptWheelSpeeds","disownWheelSpeeds","getWheelSpeeds","hasWheelSpeeds","initWheelSpeeds","setWheelSpeeds","getGas","setGas","getGasPressed","setGasPressed","getBrake","setBrake","getBrakePressed","setBrakePressed","getBrakeLights","setBrakeLights","getSteeringAngle","setSteeringAngle","getSteeringRate","setSteeringRate","getSteeringTorque","setSteeringTorque","getSteeringTorqueEps","setSteeringTorqueEps","getSteeringPressed","setSteeringPressed","adoptCruiseState","disownCruiseState","getCruiseState","hasCruiseState","initCruiseState","setCruiseState","getGearShifter","setGearShifter","adoptButtonEvents","disownButtonEvents","getButtonEvents","_ButtonEvents","hasButtonEvents","initButtonEvents","setButtonEvents","getLeftBlinker","setLeftBlinker","getRightBlinker","setRightBlinker","getGenericToggle","setGenericToggle","getDoorOpen","setDoorOpen","getSeatbeltUnlatched","setSeatbeltUnlatched","getCanValid","setCanValid","WheelSpeeds","CruiseState","ButtonEvent","RadarData_RadarPoint","getYvRel","setYvRel","getMeasured","setMeasured","RadarData","adoptErrors","disownErrors","getErrors","hasErrors","initErrors","setErrors","RadarPoint","CarControl_Actuators","getSteer","setSteer","CarControl_HUDControl_VisualAlert","CarControl_HUDControl_AudibleAlert","CarControl_CruiseControl","getCancel","setCancel","getOverride","setOverride","getSpeedOverride","setSpeedOverride","getAccelOverride","setAccelOverride","CarControl_HUDControl","getSpeedVisible","setSpeedVisible","getSetSpeed","setSetSpeed","getLanesVisible","setLanesVisible","getLeadVisible","setLeadVisible","getVisualAlert","setVisualAlert","getAudibleAlert","setAudibleAlert","getRightLaneVisible","setRightLaneVisible","getLeftLaneVisible","setLeftLaneVisible","getRightLaneDepart","setRightLaneDepart","getLeftLaneDepart","setLeftLaneDepart","VisualAlert","AudibleAlert","getGasDEPRECATED","setGasDEPRECATED","getBrakeDEPRECATED","setBrakeDEPRECATED","getSteeringTorqueDEPRECATED","setSteeringTorqueDEPRECATED","adoptActuators","disownActuators","getActuators","hasActuators","initActuators","setActuators","adoptCruiseControl","disownCruiseControl","getCruiseControl","hasCruiseControl","initCruiseControl","setCruiseControl","adoptHudControl","disownHudControl","getHudControl","hasHudControl","initHudControl","setHudControl","Actuators","CruiseControl","HUDControl","CarParams_LateralPIDTuning","adoptKpBP","disownKpBP","getKpBP","hasKpBP","initKpBP","setKpBP","adoptKpV","disownKpV","getKpV","hasKpV","initKpV","setKpV","adoptKiBP","disownKiBP","getKiBP","hasKiBP","initKiBP","setKiBP","adoptKiV","disownKiV","getKiV","hasKiV","initKiV","setKiV","getKf","setKf","CarParams_LongitudinalPIDTuning","adoptDeadzoneBP","disownDeadzoneBP","getDeadzoneBP","hasDeadzoneBP","initDeadzoneBP","setDeadzoneBP","adoptDeadzoneV","disownDeadzoneV","getDeadzoneV","hasDeadzoneV","initDeadzoneV","setDeadzoneV","CarParams_LateralINDITuning","getOuterLoopGain","setOuterLoopGain","getInnerLoopGain","setInnerLoopGain","getTimeConstant","setTimeConstant","getActuatorEffectiveness","setActuatorEffectiveness","CarParams_SafetyModel","CarParams_SteerControlType","CarParams_LateralTuning_Which","CarParams_LateralLQRTuning","getScale","setScale","getKi","setKi","getDcGain","setDcGain","adoptA","disownA","hasA","initA","adoptB","disownB","getB","hasB","initB","setB","adoptC","disownC","getC","hasC","initC","setC","adoptK","disownK","getK","hasK","initK","setK","adoptL","disownL","getL","hasL","initL","setL","CarParams_LateralTuning","adoptPid","disownPid","hasPid","initPid","isPid","adoptIndi","disownIndi","getIndi","hasIndi","initIndi","isIndi","setIndi","adoptLqr","disownLqr","getLqr","hasLqr","initLqr","isLqr","setLqr","PID","INDI","LQR","getCarName","setCarName","getCarFingerprint","setCarFingerprint","getEnableGasInterceptor","setEnableGasInterceptor","getEnableCruise","setEnableCruise","getEnableCamera","setEnableCamera","getEnableDsu","setEnableDsu","getEnableApgs","setEnableApgs","getMinEnableSpeed","setMinEnableSpeed","getMinSteerSpeed","setMinSteerSpeed","getSafetyModel","setSafetyModel","getSafetyParam","setSafetyParam","adoptSteerMaxBP","disownSteerMaxBP","getSteerMaxBP","hasSteerMaxBP","initSteerMaxBP","setSteerMaxBP","adoptSteerMaxV","disownSteerMaxV","getSteerMaxV","hasSteerMaxV","initSteerMaxV","setSteerMaxV","adoptGasMaxBP","disownGasMaxBP","getGasMaxBP","hasGasMaxBP","initGasMaxBP","setGasMaxBP","adoptGasMaxV","disownGasMaxV","getGasMaxV","hasGasMaxV","initGasMaxV","setGasMaxV","adoptBrakeMaxBP","disownBrakeMaxBP","getBrakeMaxBP","hasBrakeMaxBP","initBrakeMaxBP","setBrakeMaxBP","adoptBrakeMaxV","disownBrakeMaxV","getBrakeMaxV","hasBrakeMaxV","initBrakeMaxV","setBrakeMaxV","getMass","setMass","getWheelbase","setWheelbase","getCenterToFront","setCenterToFront","getSteerRatioRear","setSteerRatioRear","getRotationalInertia","setRotationalInertia","getTireStiffnessFront","setTireStiffnessFront","getTireStiffnessRear","setTireStiffnessRear","adoptLongitudinalTuning","disownLongitudinalTuning","getLongitudinalTuning","hasLongitudinalTuning","initLongitudinalTuning","setLongitudinalTuning","getLateralTuning","initLateralTuning","getSteerLimitAlert","setSteerLimitAlert","getVEgoStopping","setVEgoStopping","getDirectAccelControl","setDirectAccelControl","getStoppingControl","setStoppingControl","getStartAccel","setStartAccel","getSteerRateCost","setSteerRateCost","getSteerControlType","setSteerControlType","getRadarOffCan","setRadarOffCan","getSteerActuatorDelay","setSteerActuatorDelay","getOpenpilotLongitudinalControl","setOpenpilotLongitudinalControl","getCarVin","setCarVin","getIsPandaBlack","setIsPandaBlack","LateralPIDTuning","LongitudinalPIDTuning","LateralINDITuning","LateralLQRTuning","SafetyModel","SteerControlType","_typeof","capnpObject","struct","startsWith","capsName","wasLower","assignGetter","destinationStream","isDeciding","assignStream","toBytes","xpiZipFilename","oxmlContentTypes","oxmlRels","check","mask","checkString","mime","nextZipHeaderIndex","findIndex","el","header2Pos","header3Pos","_sliced","idPos","docTypePos","findDocType","kRangeErrorMessage","Z_MIN_WINDOWBITS","Z_MAX_WINDOWBITS","Z_DEFAULT_WINDOWBITS","Z_MIN_CHUNK","Z_MAX_CHUNK","Z_DEFAULT_CHUNK","Z_MIN_MEMLEVEL","Z_MAX_MEMLEVEL","Z_DEFAULT_MEMLEVEL","Z_MIN_LEVEL","Z_MAX_LEVEL","Z_DEFAULT_LEVEL","Z_DEFAULT_COMPRESSION","bkeys","bk","bkey","codes","Z_OK","Z_STREAM_END","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_MEM_ERROR","Z_BUF_ERROR","Z_VERSION_ERROR","ckeys","ck","ckey","zlibBuffer","engine","nread","onEnd","onError","zlibBufferSync","flushFlag","_finishFlushFlag","_processChunk","Deflate","Zlib","DEFLATE","Inflate","INFLATE","Gzip","GZIP","Gunzip","GUNZIP","DeflateRaw","DEFLATERAW","InflateRaw","INFLATERAW","Unzip","UNZIP","isValidFlushFlag","flag","Z_NO_FLUSH","Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_FINISH","Z_BLOCK","_opts","_chunkSize","chunkSize","finishFlush","_flushFlag","windowBits","memLevel","strategy","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","dictionary","_handle","_hadError","errno","_close","_buffer","_offset","_level","_strategy","emitCloseNT","freeze","createDeflate","createInflate","createDeflateRaw","createInflateRaw","createGzip","createUnzip","deflate","deflateSync","gzip","gzipSync","deflateRaw","deflateRawSync","unzip","unzipSync","inflate","inflateSync","gunzip","gunzipSync","inflateRaw","inflateRawSync","params","reset","ws","availInBefore","availOutBefore","inOff","async","writeSync","availInAfter","availOutAfter","have","newReq","Zstream","zlib_deflate","zlib_inflate","constants","NONE","init_done","write_in_progress","pending_close","gzip_id_bytes_read","deflateEnd","strm","inflateEnd","in_off","in_len","out_off","out_len","avail_in","next_in","avail_out","next_out","_process","_checkError","_afterSync","_after","next_expected_header_byte","inflateSetDictionary","_error","_init","_setDictionary","_reset","deflateInit2","Z_DEFLATED","inflateInit2","deflateSetDictionary","deflateReset","inflateReset","ZStream","total_in","total_out","data_type","configuration_table","utils","trees","Z_UNKNOWN","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","L_CODES","LITERALS","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","pending","pending_buf","pending_out","flush_block_only","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","insert","ins_h","hash_shift","hash_mask","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","DeflateState","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","deflateResetKeep","_tr_init","lm_init","deflate_stored","max_block_size","max_start","deflateInit","deflateSetHeader","old_flush","beg","hcrc","extra","os","bstate","deflate_huff","deflate_rle","_tr_align","_tr_stored_block","avail","tmpDict","dictLength","deflateInfo","Z_BINARY","Z_TEXT","STORED_BLOCK","STATIC_TREES","DYN_TREES","LENGTH_CODES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","static_ltree","static_dtree","_dist_code","_length_code","base_length","static_l_desc","static_d_desc","static_bl_desc","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","dist","put_short","send_bits","send_code","tree","bi_reverse","gen_codes","bits","next_code","init_block","bi_windup","smaller","_n2","_m2","pqdownheap","compress_block","ltree","dtree","lc","lx","build_tree","node","stree","gen_bitlen","xbits","overflow","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","static_init_done","stored_len","copy_block","tr_static_init","opt_lenb","static_lenb","max_blindex","detect_data_type","black_mask","build_bl_tree","send_all_trees","lcodes","dcodes","blcodes","bi_flush","2","1","0","inflate_fast","inflate_table","CODES","LENS","DISTS","Z_TREES","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","COMMENT","HCRC","DICTID","DICT","TYPE","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","BAD","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","zswap32","InflateState","havedict","flags","dmax","wbits","wsize","whave","wnext","hold","lencode","distcode","lenbits","distbits","ncode","nlen","ndist","work","lendyn","distdyn","sane","back","was","inflateResetKeep","inflateReset2","lenfix","distfix","virgin","fixedtables","sym","updatewindow","inflateInit","put","_in","_out","from_source","here_bits","here_op","here_val","last_bits","last_op","last_val","here","hbuf","order","inf_leave","xflags","extra_len","inflateGetHeader","inflateInfo","s_window","lcode","dcode","lmask","dmask","top","dolen","dodist","lbase","lext","dbase","dext","lens_index","table_index","incr","low","used","huff","base_index","MAXBITS","offs","extra_index","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","_regeneratorRuntime","BZ2","refPromise","sendNextChunk","onData","buff","runtime","Op","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","innerFn","outerFn","tryLocsList","protoGenerator","Generator","Context","_invoke","makeInvokeMethod","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","record","tryCatch","GenStateSuspendedYield","GeneratorFunction","GeneratorFunctionPrototype","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","previousPromise","enqueue","callInvokeWithMethodAndArg","unwrapped","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","isGeneratorFunction","genFun","awrap","reverse","skipTempReset","rootRecord","rval","caught","hasCatch","hasFinally","finallyEntry","complete","_catch","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Module","fnPtr","inBuffSize","outBuffSize","DataEvent","stateStore","moduleInstance","onRuntimeInitialized","onInit","addFunction","_registerCallback","refNum","outBuff","resultView","HEAPU8","isFinished","_start","inBuff","_malloc","_finish","_free","currentBuffer","inSize","_decompress","_scriptDir","currentScript","moduleOverrides","toThrow","ENVIRONMENT_IS_WEB","ENVIRONMENT_IS_WORKER","ENVIRONMENT_IS_NODE","ENVIRONMENT_IS_SHELL","nodeFS","nodePath","scriptDirectory","locateFile","__dirname","shell_read","filename","tryParseAsDataURI","readBinary","ExitStatus","intArrayToString","readbuffer","scriptArgs","quit","readAsync","xhr_onload","printErr","STACK_ALIGN","staticAlloc","staticSealed","STATICTOP","TOTAL_MEMORY","alignMemory","warnOnce","shown","_stackSave","_stackRestore","stackAlloc","getTempRet0","asm2wasmImports","f64Rem","_debugger","jsCallStartIndex","functionPointers","GLOBAL_BASE","ABORT","EXITSTATUS","condition","JSfuncs","stackSave","stackRestore","arrayToC","writeArrayToMemory","stringToC","stringToUTF8","Pointer_stringify","ptr","hasUtf","UTF8ToString","UTF8Decoder","TextDecoder","UTF8ArrayToString","u8Array","endPtr","u0","u1","u2","u3","u4","ch","stringToUTF8Array","outU8Array","outIdx","maxBytesToWrite","startIdx","endIdx","outPtr","demangle","demangleAll","jsStackTrace","stackTrace","js","HEAP8","HEAP16","HEAP32","HEAPU32","STATIC_BASE","STACK_BASE","STACKTOP","STACK_MAX","DYNAMIC_BASE","DYNAMICTOP_PTR","WASM_PAGE_SIZE","ASMJS_PAGE_SIZE","MIN_TOTAL_MEMORY","alignUp","multiple","updateGlobalBuffer","updateGlobalBufferViews","writeStackCookie","checkStackCookie","abortStackOverflow","allocSize","abortOnCannotGrowMemory","enlargeMemory","PAGE_MULTIPLE","LIMIT","OLD_TOTAL_MEMORY","replacement","transfer","oldHEAP8","_emscripten_replace_memory","TOTAL_STACK","getTotalMemory","WebAssembly","Memory","callRuntimeCallbacks","callbacks","__ATPRERUN__","__ATINIT__","__ATMAIN__","__ATEXIT__","__ATPOSTRUN__","runtimeInitialized","runtimeExited","preRun","addOnPreRun","ensureInitRuntime","preMain","exitRuntime","postRun","addOnPostRun","addOnExit","cos","sin","tan","acos","asin","atan","atan2","exp","sqrt","imul","fround","clz32","trunc","runDependencies","runDependencyWatcher","dependenciesFulfilled","runDependencyTracking","addRunDependency","dep","removeRunDependency","FS","createDataFile","createPreloadedFile","createLazyFile","mkdev","registerDevice","analyzePath","loadFilesFromDB","ErrnoError","dataURIPrefix","isDataURI","integrateWasmJS","wasmTextFile","wasmBinaryFile","asmjsCodeFile","getBinary","doNativeWasm","providedBuffer","receiveInstance","memory","mergeMemory","newBuffer","oldBuffer","oldView","trueModule","receiveInstantiatedSource","instantiateArrayBuffer","getBinaryPromise","credentials","instantiate","instantiateStreaming","asmjsReallocBuffer","finalMethod","wasmReallocBuffer","oldSize","grow","fixImports","imports","TABLE_SIZE","MAX_TABLE_SIZE","Table","element","STATIC_BUMP","tempDoublePtr","___lock","SYSCALLS","varargs","getStr","get64","high","getZero","___syscall140","getStreamFromFD","offset_low","whence","llseek","getdents","flush_NO_FILESYSTEM","fflush","printChar","___syscall146","iov","iovcnt","___syscall54","___syscall6","___unlock","_abort","__exit","exit","_exit","_emscripten_memcpy_big","___setErrNo","ASSERTIONS","chr","decodeBase64","atob","chr1","chr2","chr3","enc2","enc3","enc4","keyStr","intArrayFromBase64","decoded","nullFunc_ii","nullFunc_iiii","nullFunc_vii","nullFunc_viii","invoke_ii","a1","sp","jsCall_ii","invoke_iiii","a2","a3","jsCall_iiii","invoke_vii","jsCall_vii","invoke_viii","jsCall_viii","asmGlobalArg","asmLibraryArg","asm","real____errno_location","real__decompress","real__fflush","real__finish","real__free","real__llvm_bswap_i32","real__malloc","real__registerCallback","real__sbrk","real__start","real_establishStackSpace","real_getTempRet0","real_setTempRet0","real_setThrew","real_stackAlloc","real_stackRestore","real_stackSave","initialStackTop","old","doRun","implicit","runCaller","abortDecorators","what","ENVIRONMENT_IS_PTHREAD","emrun_register_handlers","emrun_num_post_messages_in_flight","emrun_should_close_itself","postExit","URL","emrun_http_sequence_number","prevPrint","prevErr","emrun_exit","emrun_print","emrun_printErr","normalizeArray","allowAboveRoot","resolvedPath","resolvedAbsolute","trailingSlash","fromParts","toParts","samePartsLength","outputParts","delimiter","dirname","hasRoot","matchedSlash","basename","extname","startDot","startPart","preDotState","createStore","createHashListener","createArrayListener","WeakmapEvent","toHash","getEvent","eventStore","hiddenStore","observable","listenToHash","listenKey","onChange","listenToArray","_list","_diff","change","getProfile","dongle_id","profile","hadRuntime","oldRuntime","inModule","return","TO_STRING","dPs","enumBugKeys","IE_PROTO","Empty","_createDict","createDict","iframeDocument","iframe","display","contentWindow","lt","Properties","getKeys","$keys","toIObject","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","ObjectProto","addToUnscopables","_k","Arguments","Internal","newGenericPromiseCapability","OwnPromiseCapability","Wrapper","anInstance","forOf","speciesConstructor","microtask","newPromiseCapabilityModule","perform","v8","$Promise","isNode","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","chain","_c","_v","reaction","exited","domain","_h","onHandleUnhandled","enter","onUnhandled","unhandled","isUnhandled","onunhandledrejection","onrejectionhandled","$reject","_w","$resolve","wrapper","executor","onFulfilled","onRejected","$index","alreadyCalled","race","forbiddenField","isArrayIter","getIterFn","BREAK","RETURN","iterFn","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","parent","standalone","toggle","createTextNode","observe","characterData","DESCRIPTORS","KEY","_finally","onFinally","_try","queryString","ensureHeader","mimeTypeJson","xhrRequest","opt","defaultResponse","strictUriEncode","decodeComponent","extract","queryStart","parserForArrayFormat","arrayFormat","accumulator","param","keysSorter","encoderForArrayFormat","val2","parseUrl","singleMatcher","multiMatcher","decodeComponents","components","tokens","encodedURI","customDecodeURIComponent","replaceMap","urlSetQuery","lower","uri","useJson","xhrRequestResult","resp","rawRequest","onabort","parseHeaders","createXHR","_createXHR","called","cbOnce","getBody","getXml","responseXML","firefoxBugTakenEffect","nodeName","isJson","errorFunc","evt","timeoutTimer","failureResponse","loadFunc","aborted","useXDR","cors","readystatechange","ontimeout","username","password","withCredentials","isEmpty","beforeSend","forEachArray","win","row","define","shim","boundTrim","ERROR_MESSAGE","bound","binder","boundLength","boundArgs","origKeys","keysShim","originalKeys","shimObjectKeys","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","$Object","$TypeError","$String","$Number","assertRecord","isPropertyDescriptor","$isNaN","$isFinite","sign","IsCallable","strSlice","callBind","isPrefixOf","ES5","ToPrimitive","ToBoolean","ToNumber","ToInteger","ToInt32","ToUint32","ToUint16","posInt","ToObject","optMessage","SameValue","IsPropertyDescriptor","Desc","IsAccessorDescriptor","IsDataDescriptor","IsGenericDescriptor","FromPropertyDescriptor","ToPropertyDescriptor","Obj","AbstractEqualityComparison","xType","yType","StrictEqualityComparison","AbstractRelationalComparison","LeftFirst","py","nx","ny","$SyntaxError","allowed","isData","IsAccessor","recordType","argumentName","modulo","remain","ES5internalSlots","DefaultValue","actualHint","$Function","$apply","$call","applyBind","shimStringTrim","polyfill","testTrim","forEachString","forEachObject","getResponse","httpStatusError","assertOk","SafeParseCallback","reviver","flatten","pair","parentKey","objectQuery","acc","flat","forOwn","orig","forIn","objectPair","safeStringify","serializer","replacer","cycleReplacer","thisPos","spaces","getSerialize","valuePipe","fns","valuePipeline","_isFinite2","createAnnotation","_validators","AnnotationValidator","getAnnotation","updateAnnotation","listAnnotations","_end","dongleId","_verifyAnnotationStar","verifyAnnotationStartEnd","listMyAnnotations","_verifyAnnotationStar2","_isFinite","Joi","canonical_segment_name","required","offset_nanos_part","offset_millis","start_time_utc_millis","end_time_utc_millis","allow","optional","webpackUniversalModuleDefinition","Assert","Crypto","Path","Util","Escape","internals","clone","cloneDeep","isImmutable","merge","isNullOverride","isMergeArrays","applyToDefaults","defaults","cloneWithShallow","restore","reach","reachSet","applyToDefaultsWithShallow","_i2","_i3","unique","identifier","mapToObject","intersect","array1","array2","justFirst","common","contain","valuePairs","compareFlags","deep","hasOnly","hasPart","only","misses","pattern","_i4","escapeRegex","$0","_i5","matched","_i6","_i7","separator","functions","reachTemplate","template","formatStack","getFileName","getLineNumber","getColumnNumber","getFunctionName","isConstructor","formatTrace","callStack","prepareStackTrace","capture","displayStack","abortThrow","hideStack","NODE_ENV","_len","_key","msgs","Bench","elapsed","hrtime","base64urlEncode","base64urlDecode","escapeHeaderAttribute","attribute","escapeHtml","escapeJavaScript","escapeJson","_hoekOnce","_len2","_key2","isSafeInteger","ignore","_i8","sourcePath","uniqueFilename","extension","randomBytes","_len3","_key3","shallow","wait","Hoek","settings","validationOptions","isContext","contextPrefix","isJoi","isRef","Settings","Ref","Errors","Alternatives","Cast","abortEarly","convert","allowUnknown","skipFunctions","stripUnknown","language","presence","strip","noDefaults","Any","_class","_type","_settings","_valids","_invalids","_tests","_refs","_flags","_description","_unit","_notes","_tags","_examples","_meta","_inner","createOverrideError","checkOptions","details","_currentJoi","_baseType","inners","schema","tmpObj","keysToRestore","_j","sourceKey","_test","_options","isStrict","isRaw","remove","allowOnly","invalid","forbidden","applyFunctionToChildren","extraChildren","child","_default","when","otherwise","alternativeOptions","notes","tags","meta","example","_prepareEmptyValue","_validate","reference","originalValue","errors","finalValue","defaultValue","_coerce","coerced","insensitive","invalids","stripUndefined","_base","valids","Err","_validateWithOptions","describe","function","examples","rules","validator","hasRef","_getLabel","disallow","not","exist","alternatives","try","date","boolean","Language","wrapArrays","localized","childrenString","skipKey","localizedKey","isSecure","normalized","processErrors","localErrors","itemMessage","_override","_object","annotate","annotated","errorKeys","errorKey","missingKeys","missing","missingKey","stripColorCodes","redFgEscape","redBgEscape","endColor","seg","refAnnotations","cacheKey","replacers","$2","_extends","_possibleConstructorReturn","_inherits","subClass","superClass","_defaults","Lazy","callWithDefaults","_schema","_toConsumableArray","arr2","alt","bool","_len4","_key4","_len5","_key5","_len6","_key6","_len7","_key7","_len8","_key8","_len9","_key9","_len10","_key10","compile","attempt","sourceSchema","schemaPath","lazy","joi","_len11","_key11","extensions","extensionsSchema","_loop","extensionSchema","_ctor","_this3","baseRet","pre","_loop2","rule","ruleArgs","validateArgs","_len12","rArgs","_key12","setup","newSchema","_len13","extArgs","_key13","arity","or","valueType","lowercaseValue","InternalSet","_set","_hasRef","refs","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_item","delete","extendedCheck","extendedCheckForValue","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","checkRef","isReallyEqual","_iteratorNormalCompletion4","_didIteratorError4","_iteratorError4","_step4","_iterator4","_iteratorNormalCompletion5","_didIteratorError5","_iteratorError5","_step5","_iterator5","_Any","baseType","peek","schemas","cast","schemaCondition","sKeys","invalidDate","isIsoDate","isoString","isoDate","toDate","multiplier","iso","_isIsoDate","isNow","compareTo","greater","less","Topo","renames","dependencies","patterns","safeParse","valueKeys","renamed","rename","targetKeys","matchedTargetKeys","allUndefined","ignoreUndefined","alias","unprocessed","stripProps","localState","_localState","_result","unprocessedKey","peers","topo","after","group","_child","castErr","nodes","append","unknown","_pattern","with","_with","_dependency","without","xor","nand","requiredKeys","optionalKeys","forbiddenKeys","renameDefaults","groupedChildren","groupChildren","typeData","parseErr","grouped","keysToLabels","findLabel","matchingChild","peer","main","mainWithLabel","peerWithLabel","present","peersWithLabels","presentWithLabels","missingWithLabels","rfc3986","ipv4Cidr","digitOnly","ipv6Cidr","unreserved","subDelims","pchar","pcharOnly","decOctect","IPv4address","h16","hexDigitOnly","ls32","IPv6SixHex","IPv6FiveHex","IPv6FourHex","IPv6ThreeHex","IPv6TwoHex","IPv6OneHex","IPv6NoneHex","IPv6address","IPvFuture","scheme","alphaOnly","authority","segmentNz","pathAbEmpty","pathAbsolute","hierPart","relativeRef","segmentNzNc","fragment","generate","charCode","isSafe","escapeJavaScriptChar","escapeHtmlChar","padLeft","hexValue","namedEscape","namedHtml","safeCharCodes","Punycode","defaultThreshold","maxIPv6Groups","categories","dnsWarn","rfc5321","cfws","rfc5322","diagnoses","rfc5321TLD","rfc5321TLDNumeric","rfc5321QuotedString","rfc5321AddressLiteral","cfwsComment","cfwsFWS","undesiredNonAscii","deprecatedLocalPart","deprecatedFWS","deprecatedQTEXT","deprecatedQP","deprecatedComment","deprecatedCTEXT","deprecatedIPv6","deprecatedCFWSNearAt","rfc5322Domain","rfc5322TooLong","rfc5322LocalTooLong","rfc5322DomainTooLong","rfc5322LabelTooLong","rfc5322DomainLiteral","rfc5322DomainLiteralOBSDText","rfc5322IPv6GroupCount","rfc5322IPv62x2xColon","rfc5322IPv6BadCharacter","rfc5322IPv6MaxGroups","rfc5322IPv6ColonStart","rfc5322IPv6ColonEnd","errExpectingDTEXT","errNoLocalPart","errNoDomain","errConsecutiveDots","errATEXTAfterCFWS","errATEXTAfterQS","errATEXTAfterDomainLiteral","errExpectingQPair","errExpectingATEXT","errExpectingQTEXT","errExpectingCTEXT","errBackslashEnd","errDotStart","errDotEnd","errDomainHyphenStart","errDomainHyphenEnd","errUnclosedQuotedString","errUnclosedComment","errUnclosedDomainLiteral","errFWSCRLFx2","errFWSCRLFEnd","errCRNoLF","errUnknownTLD","errDomainTooShort","localpart","literal","contextComment","contextFWS","contextQuotedString","contextQuotedPair","specials","codePointAt","c0Controls","c1Controls","ipV4","ipV6","normalizeSupportsNul","nulNormalize","email","checkIpV6","validDomain","tldAtom","tldBlacklist","tldWhitelist","diagnose","threshold","errorLevel","minDomainAtoms","maxResult","updateResult","allowUnicode","prevToken","parseData","atomData","locals","domains","elementCount","elementLength","crlfCount","hyphenFlag","assertEnd","emailLength","fromCodePoint","punycodeLength","addressLiteral","matchesIP","maxGroups","groups","escapeToken","_punycodeLength","finishResult","diag","includesSingle","includesOne","includesOneSingle","includesRequiredUnknowns","includesRequiredKnowns","includesRequiredBoth","excludes","excludesSingle","ordered","orderedLength","sparse","javascript","unix","minArity","maxArity","class","float","integer","negative","positive","alphanum","invert","uriRelativeOnly","uriCustomScheme","guid","hexAlign","lowercase","uppercase","creditCard","ip","ipVersion","arrays","ordereds","inclusions","exclusions","requireds","wasArray","single","_checkItems","previousErrors","errored","isValid","fastSplice","requiredChecks","_j2","inclusion","previousCheck","_fillMissedErrors","_fillOrderedErrors","orderedItems","comparator","records","dupePos","dupeValue","knownMisses","unknownMisses","requiredOrdereds","converted","Binary","_encoding","truthySet","falsySet","truthy","falsy","ObjectType","Func","_ObjectType$construct","precisionRx","divisor","places","Net","Isemail","JoiDate","Uri","Ip","uriRegex","createUriRegex","ipRegex","createIpRegex","guidBrackets","guidVersions","uuidv1","uuidv2","uuidv3","uuidv4","uuidv5","cidrPresences","normalizationForms","case","toLocaleUpperCase","toLocaleLowerCase","replacements","byteAligned","sum","char","patternOptions","patternObject","isEmailOptions","checkDNS","ipOptions","cidr","uriOptions","customScheme","allowRelative","relativeOnly","toISOString","guidOptions","versionNumbers","versionNumber","guidRegex","hexOptions","base64Options","paddingRequired","isIPv6","uuid","RFC3986","cidrs","ipv4","ipv6","ipvfuture","optionalScheme","withScheme","_items","before","seq","_sort","others","mergeSort","graph","graphAfters","graphNodes","expandedGroups","graphNodeItems","_group","afterNodes","_group2","_node","ancestors","_node2","_j3","visited","sorted","_j4","shouldSeeCount","seenCount","seqIndex","sortedNodes","sortedItem","placeHoldersCount","placeHolders","L","splitPathRe","splitPath","__WEBPACK_AMD_DEFINE_RESULT__","nodeType","freeGlobal","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","ucs2decode","ucs2encode","digitToBasic","digit","adapt","numPoints","firstTime","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","postJsonRpcPayload","payload","refreshAccessToken","redirect_uri","authResponseText","access_token","fetchLocation","_stringify2","locationEndpoint","listDevices","setDeviceAlias","setDeviceVehicleId","vehicle_id","grantDeviceReadPermission","removeDeviceReadPermission","fetchVehicles","vehicleId","vehicleEndpoint","fetchDevice","deviceEndpoint","pilotPair","imei","serial","pairToken","pair_token","fetchDeviceStats","unpair","fetchDeviceOwner","$JSON","routeApi","routeSigUrl","_configRequestPromise2","getCoords","coords","getJpegUrl","routeOffsetSeconds","_urlJoin2","fetchRoutes","_toConsumableArray3","getSegmentMetadata","parseSegmentMetadata","segmentsFromMetadata","getRouteInfo","routeName","getShareSignature","getRouteSegments","listRoutes","createdAfter","SEGMENT_LENGTH","routeStartTimes","canonical_route_name","routeOffset","segmentNum","canonical_name","duration","segmentsData","curSegment","curVideoStartOffset","proc_log","proc_qlog","segmentHasDriverCamera","proc_dcamera","segmentHasDriverCameraStream","segmentHasVideo","proc_camera","route","finishSegment","startTime","startCoord","start_lng","start_lat","videoAvailableBetweenOffsets","hasVideo","deviceType","devicetype","hpgps","hasDriverCamera","hasDriverCameraStream","locStart","locEnd","distanceMiles","cameraStreamSegCount","driverCameraStreamSegCount","endCoord","end_lng","end_lat","lastVideoRange","_from2","createProperty","arrayLike","aLen","mapfn","mapping","$defineProperty","getLeaderboard","urlStore","getRouteFiles","getLogUrls","fetchMakes","fetchModels","make","fetchVehicle","_slicedToArray3","videoApi","videoServerHost","_routeSigUrl$split$sl","_routeSigUrl$split$sl2","routeSignature","videoserverRequest","videoserverBaseUrl","storageRequest","getRearCameraStreamIndexUrl","getFrontCameraStreamIndexUrl","getQcameraStreamIndexUrl","getRearCameraStreamIndex","getFrontCameraStreamIndexPath","getQcameraStreamIndex","_isIterable3","_getIterator3","sliceIterator","isIterable","getIterator","useForage","_localforage2","getTokenInternal","getItem","t0","setItem","setCommaAccessToken","_dereq_","scheduleDrain","Mutation","observer","scriptEl","parentNode","oldQueue","immediate","INTERNAL","handlers","REJECTED","FULFILLED","PENDING","resolver","outcome","safelyResolveThenable","QueueItem","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","returnValue","getThen","appyThen","thenable","onSuccess","tryToUnwrap","resolved","allResolver","resolveFromAll","outValue","3","4","idb","getIDB","indexedDB","webkitIndexedDB","mozIndexedDB","OIndexedDB","msIndexedDB","createBlob","properties","builder","BlobBuilder","MSBlobBuilder","MozBlobBuilder","WebKitBlobBuilder","getBlob","Promise$1","executeCallback","executeTwoCallbacks","errorCallback","normalizeKey","getCallback","DETECT_BLOB_SUPPORT_STORE","supportsBlobs","dbContexts","READ_ONLY","READ_WRITE","_checkBlobSupport","_checkBlobSupportWithoutCaching","txn","transaction","blob","objectStore","preventDefault","stopPropagation","oncomplete","matchedChrome","matchedEdge","_deferReadiness","dbInfo","dbContext","deferredOperation","deferredOperations","dbReady","_advanceReadiness","_rejectReadiness","_getConnection","upgradeNeeded","forages","db","dbArgs","openreq","onupgradeneeded","createObjectStore","storeName","oldVersion","newVersion","onsuccess","_getOriginalConnection","_getUpgradedConnection","_isUpgradeNeeded","defaultVersion","isNewStore","objectStoreNames","contains","isDowngrade","isUpgrade","incVersion","_decodeBlob","encodedBlob","_binStringToArrayBuffer","bin","_isEncodedBlob","__local_forage_encoded_blob","_fullyReady","_initReady","_dbInfo","createTransaction","retries","tx","_tryReconnect","forage","asyncStorage","_driver","_initStorage","ready","initPromises","ignoreErrors","_defaultConfig","_support","isIndexedDBValid","isSafari","openDatabase","hasFetch","IDBKeyRange","iterate","openCursor","iterationNumber","cursor","blobSupport","_encodeBlob","FileReader","onloadend","btoa","readAsBinaryString","advanced","advance","dropInstance","currentConfig","dbPromise","deleteObjectStore","_forage2","deleteDatabase","onblocked","BASE_CHARS","BLOB_TYPE_PREFIX","BLOB_TYPE_PREFIX_REGEX","SERIALIZED_MARKER","SERIALIZED_MARKER_LENGTH","TYPE_ARRAYBUFFER","TYPE_BLOB","TYPE_INT8ARRAY","TYPE_UINT8ARRAY","TYPE_UINT8CLAMPEDARRAY","TYPE_INT16ARRAY","TYPE_INT32ARRAY","TYPE_UINT16ARRAY","TYPE_UINT32ARRAY","TYPE_FLOAT32ARRAY","TYPE_FLOAT64ARRAY","TYPE_SERIALIZED_MARKER_LENGTH","toString$1","stringToBuffer","serializedString","encoded1","encoded2","encoded3","encoded4","bufferLength","bufferToString","base64String","localforageSerializer","serialize","fileReader","deserialize","blobType","matcher","createDbTable","executeSql","tryExecuteSql","sqlStatement","SYNTAX_ERR","rows","_setItem","retriesLeft","sqlError","QUOTA_ERR","webSQLStorage","_initStorage$1","dbInfoPromise","isWebSQLValid","iterate$1","getItem$1","setItem$1","removeItem$1","clear$1","length$1","key$1","keys$1","dropInstance$1","storeNames","getAllStoreNames","operationInfo","dropTable","operations","_getKeyPrefix","keyPrefix","_isLocalStorageUsable","checkIfLocalStorageThrows","localStorageWrapper","_initStorage$2","isLocalStorageValid","iterate$2","keyPrefixLength","getItem$2","setItem$2","removeItem$2","clear$2","length$2","key$2","keys$2","itemKey","dropInstance$2","sameValue","searchElement","DefinedDrivers","DriverSupport","DefaultDrivers","INDEXEDDB","WEBSQL","LOCALSTORAGE","DefaultDriverOrder","OptionalDriverMethods","LibraryMethods","DefaultConfig","driver","callWhenReady","localForageInstance","libraryMethod","_args","localforage_js","LocalForage","driverTypeKey","driverName","defineDriver","_driverSet","_initDriver","_ready","_wrapLibraryMethodsWithReady","setDriver","driverObject","complianceError","driverMethods","driverMethodName","configureMissingMethods","methodNotImplementedFactory","methodName","optionalDriverMethod","setDriverSupport","support","getDriver","getDriverPromise","getSerializer","serializerPromise","drivers","supportedDrivers","_getSupportedDrivers","setDriverToConfig","extendSelfWithDriver","oldDriverSetDone","initDriver","currentDriverIndex","driverPromiseLoop","supports","libraryMethodsAndProperties","createInstance","oauthRedirectLink","OAUTH_PARAMS","REDIRECT_URI","GOOGLE_URL_ROOT","GOOGLE_CLIENT_ID","GOOGLE_AUTH_ENDPOINT","redirectOrigin","client_id","response_type","preferBinary","_body","_headers","setHeader","useFetch","decideMode","_fetchTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","headersObj","headersList","controller","_fetchAbortController","requestTimeout","_connect","_response","statusValid","flushHeaders","setNoDelay","setSocketKeepAlive","arrayCopy","qs","eq","regexp","maxKeys","kstr","vstr","stringifyPrimitive","ks","validateParams","wrappy","onceStrict","onceError","UINT32","_low","_high","remainder","fromBits","a00","a16","subtract","multiply","c16","c00","b16","b00","div","gt","_other","shiftLeft","shiftRight","greaterThan","lessThan","shiftl","allowOverflow","rotateLeft","rotl","rotateRight","rotr","radixPowerCache","16","10","radixCache","a32","a48","_a00","_a16","_a32","_a48","radixUint","b32","c32","c48","logUrl","signedShortToByteArray","short","shortToByteArray","signedLongToByteArray","Enabled","Available","Speed","getEgoData","getCarStateControls","Fl","Fr","Rl","Rr","getThermalFreeSpace","longToByteArray","getThermalData","getThermalFlags","getThermalCPU","getHealthFlags","DEBOUNCE_DELAY","sendBatch","batching","thumbnails","routeInitTime","firstFrameTime","newMaxByteStateChangeCount","newMessages","newThumbnails","queueBatch","getPrevMsgEntry","insertEventData","logTime","isLogEvent","insertCanMessage","Src","Dat","loadData","isLegacyShare","logUrls","getLogPart","logReader","LogMonoTime","TimestampEof","monoTime","Can","Health","Thermal","CacheEntry","handleMessage","action"],"mappings":"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","file":"beaf0312537cf2a84ceb.worker.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/cabana/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 347);\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome && 'undefined' != typeof chrome.storage ? chrome.storage.local : localstorage();\n/**\n * Colors.\n */\n\nexports.colors = ['lightseagreen', 'forestgreen', 'goldenrod', 'dodgerblue', 'darkorchid', 'crimson'];\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n } // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n\n\n return typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance || // is firebug? http://stackoverflow.com/a/398120/376773\n typeof window !== 'undefined' && window.console && (window.console.firebug || window.console.exception && window.console.table) || // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31 || // double check webkit in userAgent just in case we are in a worker\n typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/);\n}\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\n\nexports.formatters.j = function (v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n args[0] = (useColors ? '%c' : '') + this.namespace + (useColors ? ' %c' : ' ') + args[0] + (useColors ? '%c ' : ' ') + '+' + exports.humanize(this.diff);\n if (!useColors) return;\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit'); // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function (match) {\n if ('%%' === match) return;\n index++;\n\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n args.splice(lastC, 0, c);\n}\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console && console.log && Function.prototype.apply.call(console.log, console, arguments);\n}\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch (e) {}\n}\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\n\nfunction load() {\n var r;\n\n try {\n r = exports.storage.debug;\n } catch (e) {} // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n\n\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\n\nexports.enable(load());\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../../constants\");\n\nvar util_1 = require(\"../../util\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar object_size_1 = require(\"../object-size\");\n\nvar orphan_1 = require(\"./orphan\");\n\nvar pointer_allocation_result_1 = require(\"./pointer-allocation-result\");\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar trace = debug_1.default('capnp:pointer');\ntrace('load');\n/**\n * A pointer referencing a single byte location in a segment. This is typically used for Cap'n Proto pointers, but is\n * also sometimes used to reference an offset to a pointer's content or tag words.\n *\n * @export\n * @class Pointer\n */\n\nvar Pointer =\n/** @class */\nfunction () {\n function Pointer(segment, byteOffset, depthLimit) {\n if (depthLimit === void 0) {\n depthLimit = constants_1.MAX_DEPTH;\n }\n\n if (depthLimit === 0) throw new Error(util_1.format(errors_1.PTR_DEPTH_LIMIT_EXCEEDED, this)); // Make sure we keep track of all pointer allocations; there's a limit per message (prevent DoS).\n\n trackPointerAllocation(segment.message, this); // NOTE: It's okay to have a pointer to the end of the segment; you'll see this when creating pointers to the\n // beginning of the content of a newly-allocated composite list with zero elements. Unlike other language\n // implementations buffer over/underflows are not a big issue since all buffer access is bounds checked in native\n // code anyway.\n\n if (byteOffset < 0 || byteOffset > segment.byteLength) {\n throw new Error(util_1.format(errors_1.PTR_OFFSET_OUT_OF_BOUNDS, byteOffset));\n }\n\n this._capnp = {\n compositeList: false,\n depthLimit: depthLimit\n };\n this.segment = segment;\n this.byteOffset = byteOffset;\n trace('new %s', this);\n }\n\n Pointer.prototype.toString = function () {\n return util_1.format('Pointer_%d@%a,%s,limit:%x', this.segment.id, this.byteOffset, dump(this), this._capnp.depthLimit);\n };\n\n Pointer.adopt = adopt;\n Pointer.copyFrom = copyFrom;\n Pointer.disown = disown;\n Pointer.dump = dump;\n Pointer.isNull = isNull;\n Pointer._capnp = {\n displayName: 'Pointer'\n };\n return Pointer;\n}();\n\nexports.Pointer = Pointer;\n/**\n * Adopt an orphaned pointer, making the pointer point to the orphaned content without copying it.\n *\n * @param {Orphan<Pointer>} src The orphan to adopt.\n * @param {Pointer} p The the pointer to adopt into.\n * @returns {void}\n */\n\nfunction adopt(src, p) {\n src._moveTo(p);\n}\n\nexports.adopt = adopt;\n/**\n * Convert a pointer to an Orphan, zeroing out the pointer and leaving its content untouched. If the content is no\n * longer needed, call `disown()` on the orphaned pointer to erase the contents as well.\n *\n * Call `adopt()` on the orphan with the new target pointer location to move it back into the message; the orphan\n * object is then invalidated after adoption (can only adopt once!).\n *\n * @param {T} p The pointer to turn into an Orphan.\n * @returns {Orphan<T>} An orphaned pointer.\n */\n\nfunction disown(p) {\n return new orphan_1.Orphan(p);\n}\n\nexports.disown = disown;\n\nfunction dump(p) {\n return util_1.bufferToHex(p.segment.buffer.slice(p.byteOffset, p.byteOffset + 8));\n}\n\nexports.dump = dump;\n/**\n * Get the total number of bytes required to hold a list of the provided size with the given length, rounded up to the\n * nearest word.\n *\n * @param {ListElementSize} elementSize A number describing the size of the list elements.\n * @param {number} length The length of the list.\n * @param {ObjectSize} [compositeSize] The size of each element in a composite list; required if\n * `elementSize === ListElementSize.COMPOSITE`.\n * @returns {number} The number of bytes required to hold an element of that size, or `NaN` if that is undefined.\n */\n\nfunction getListByteLength(elementSize, length, compositeSize) {\n switch (elementSize) {\n case list_element_size_1.ListElementSize.BIT:\n return util_1.padToWord(length + 7 >>> 3);\n\n case list_element_size_1.ListElementSize.BYTE:\n case list_element_size_1.ListElementSize.BYTE_2:\n case list_element_size_1.ListElementSize.BYTE_4:\n case list_element_size_1.ListElementSize.BYTE_8:\n case list_element_size_1.ListElementSize.POINTER:\n case list_element_size_1.ListElementSize.VOID:\n return util_1.padToWord(getListElementByteLength(elementSize) * length);\n\n /* istanbul ignore next */\n\n case list_element_size_1.ListElementSize.COMPOSITE:\n if (compositeSize === undefined) throw new Error(util_1.format(errors_1.PTR_INVALID_LIST_SIZE, NaN));\n return length * util_1.padToWord(object_size_1.getByteLength(compositeSize));\n\n /* istanbul ignore next */\n\n default:\n throw new Error(errors_1.PTR_INVALID_LIST_SIZE);\n }\n}\n\nexports.getListByteLength = getListByteLength;\n/**\n * Get the number of bytes required to hold a list element of the provided size. `COMPOSITE` elements do not have a\n * fixed size, and `BIT` elements are packed into exactly a single bit, so these both return `NaN`.\n *\n * @param {ListElementSize} elementSize A number describing the size of the list elements.\n * @returns {number} The number of bytes required to hold an element of that size, or `NaN` if that is undefined.\n */\n\nfunction getListElementByteLength(elementSize) {\n switch (elementSize) {\n /* istanbul ignore next */\n case list_element_size_1.ListElementSize.BIT:\n return NaN;\n\n case list_element_size_1.ListElementSize.BYTE:\n return 1;\n\n case list_element_size_1.ListElementSize.BYTE_2:\n return 2;\n\n case list_element_size_1.ListElementSize.BYTE_4:\n return 4;\n\n case list_element_size_1.ListElementSize.BYTE_8:\n case list_element_size_1.ListElementSize.POINTER:\n return 8;\n\n /* istanbul ignore next */\n\n case list_element_size_1.ListElementSize.COMPOSITE:\n // Caller has to figure it out based on the tag word.\n return NaN;\n\n /* istanbul ignore next */\n\n case list_element_size_1.ListElementSize.VOID:\n return 0;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(util_1.format(errors_1.PTR_INVALID_LIST_SIZE, elementSize));\n }\n}\n\nexports.getListElementByteLength = getListElementByteLength;\n/**\n * Add an offset to the pointer's offset and return a new Pointer for that address.\n *\n * @param {number} offset The number of bytes to add to the offset.\n * @param {Pointer} p The pointer to add from.\n * @returns {Pointer} A new pointer to the address.\n */\n\nfunction add(offset, p) {\n return new Pointer(p.segment, p.byteOffset + offset, p._capnp.depthLimit);\n}\n\nexports.add = add;\n/**\n * Replace a pointer with a deep copy of the pointer at `src` and all of its contents.\n *\n * @param {Pointer} src The pointer to copy.\n * @param {Pointer} p The pointer to copy into.\n * @returns {void}\n */\n\nfunction copyFrom(src, p) {\n // If the pointer is the same then this is a noop.\n if (p.segment === src.segment && p.byteOffset === src.byteOffset) {\n trace('ignoring copy operation from identical pointer %s', src);\n return;\n } // Make sure we erase this pointer's contents before moving on. If src is null, that's all we do.\n\n\n erase(p); // noop if null\n\n if (isNull(src)) return;\n\n switch (getTargetPointerType(src)) {\n case pointer_type_1.PointerType.STRUCT:\n copyFromStruct(src, p);\n break;\n\n case pointer_type_1.PointerType.LIST:\n copyFromList(src, p);\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(util_1.format(errors_1.PTR_INVALID_POINTER_TYPE, getTargetPointerType(p)));\n }\n}\n\nexports.copyFrom = copyFrom;\n/**\n * Recursively erase a pointer, any far pointers/landing pads/tag words, and the content it points to.\n *\n * Note that this will leave \"holes\" of zeroes in the message, since the space cannot be reclaimed. With packing this\n * will have a negligible effect on the final message size.\n *\n * FIXME: This may need protection against infinite recursion...\n *\n * @param {Pointer} p The pointer to erase.\n * @returns {void}\n */\n\nfunction erase(p) {\n if (isNull(p)) return; // First deal with the contents.\n\n var c;\n\n switch (getTargetPointerType(p)) {\n case pointer_type_1.PointerType.STRUCT:\n var size = getTargetStructSize(p);\n c = getContent(p); // Wipe the data section.\n\n c.segment.fillZeroWords(c.byteOffset, size.dataByteLength / 8); // Iterate over all the pointers and nuke them.\n\n for (var i = 0; i < size.pointerLength; i++) {\n erase(add(i * 8, c));\n }\n\n break;\n\n case pointer_type_1.PointerType.LIST:\n var elementSize = getTargetListElementSize(p);\n var length = getTargetListLength(p);\n var contentWords = util_1.padToWord(length * getListElementByteLength(elementSize));\n c = getContent(p);\n\n if (elementSize === list_element_size_1.ListElementSize.POINTER) {\n for (var i = 0; i < length; i++) {\n erase(new Pointer(c.segment, c.byteOffset + i * 8, p._capnp.depthLimit - 1));\n } // Calling erase on each pointer takes care of the content, nothing left to do here.\n\n\n break;\n } else if (elementSize === list_element_size_1.ListElementSize.COMPOSITE) {\n // Read some stuff from the tag word.\n var tag = add(-8, c);\n var compositeSize = getStructSize(tag);\n var compositeByteLength = object_size_1.getByteLength(compositeSize);\n contentWords = getOffsetWords(tag); // Kill the tag word.\n\n c.segment.setWordZero(c.byteOffset - 8); // Recursively erase each pointer.\n\n for (var i = 0; i < length; i++) {\n for (var j = 0; j < compositeSize.pointerLength; j++) {\n erase(new Pointer(c.segment, c.byteOffset + i * compositeByteLength + j * 8, p._capnp.depthLimit - 1));\n }\n }\n }\n\n c.segment.fillZeroWords(c.byteOffset, contentWords);\n break;\n\n case pointer_type_1.PointerType.OTHER:\n // No content.\n break;\n\n default:\n throw new Error(util_1.format(errors_1.PTR_INVALID_POINTER_TYPE, getTargetPointerType(p)));\n }\n\n erasePointer(p);\n}\n\nexports.erase = erase;\n/**\n * Set the pointer (and far pointer landing pads, if applicable) to zero. Does not touch the pointer's content.\n *\n * @param {Pointer} p The pointer to erase.\n * @returns {void}\n */\n\nfunction erasePointer(p) {\n if (getPointerType(p) === pointer_type_1.PointerType.FAR) {\n var landingPad = followFar(p);\n\n if (isDoubleFar(p)) {\n // Kill the double-far tag word.\n landingPad.segment.setWordZero(landingPad.byteOffset + 8);\n } // Kill the landing pad.\n\n\n landingPad.segment.setWordZero(landingPad.byteOffset);\n } // Finally! Kill the pointer itself...\n\n\n p.segment.setWordZero(p.byteOffset);\n}\n\nexports.erasePointer = erasePointer;\n/**\n * Interpret the pointer as a far pointer, returning its target segment and offset.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {Pointer} A pointer to the far target.\n */\n\nfunction followFar(p) {\n var targetSegment = p.segment.message.getSegment(p.segment.getUint32(p.byteOffset + 4));\n var targetWordOffset = p.segment.getUint32(p.byteOffset) >>> 3;\n return new Pointer(targetSegment, targetWordOffset * 8, p._capnp.depthLimit - 1);\n}\n\nexports.followFar = followFar;\n/**\n * If the pointer address references a far pointer, follow it to the location where the actual pointer data is written.\n * Otherwise, returns the pointer unmodified.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {Pointer} A new pointer representing the target location, or `p` if it is not a far pointer.\n */\n\nfunction followFars(p) {\n if (getPointerType(p) === pointer_type_1.PointerType.FAR) {\n var landingPad = followFar(p);\n if (isDoubleFar(p)) landingPad.byteOffset += 8;\n return landingPad;\n }\n\n return p;\n}\n\nexports.followFars = followFars;\n\nfunction getCapabilityId(p) {\n return p.segment.getUint32(p.byteOffset + 4);\n}\n\nexports.getCapabilityId = getCapabilityId;\n\nfunction isCompositeList(p) {\n return getTargetPointerType(p) === pointer_type_1.PointerType.LIST && getTargetListElementSize(p) === list_element_size_1.ListElementSize.COMPOSITE;\n}\n/**\n * Obtain the location of the pointer's content, following far pointers as needed.\n * If the pointer is a struct pointer and `compositeIndex` is set, it will be offset by a multiple of the struct's size.\n *\n * @param {Pointer} p The pointer to read from.\n * @param {boolean} [ignoreCompositeIndex] If true, will not follow the composite struct pointer's composite index and\n * instead return a pointer to the parent list's contents (also the beginning of the first struct).\n * @returns {Pointer} A pointer to the beginning of the pointer's content.\n */\n\n\nfunction getContent(p, ignoreCompositeIndex) {\n var c;\n\n if (isDoubleFar(p)) {\n var landingPad = followFar(p);\n c = new Pointer(p.segment.message.getSegment(getFarSegmentId(landingPad)), getOffsetWords(landingPad) * 8);\n } else {\n var target = followFars(p);\n c = new Pointer(target.segment, target.byteOffset + 8 + getOffsetWords(target) * 8);\n }\n\n if (isCompositeList(p)) c.byteOffset += 8;\n\n if (!ignoreCompositeIndex && p._capnp.compositeIndex !== undefined) {\n // Seek backwards by one word so we can read the struct size off the tag word.\n c.byteOffset -= 8; // Seek ahead by `compositeIndex` multiples of the struct's total size.\n\n c.byteOffset += 8 + p._capnp.compositeIndex * object_size_1.getByteLength(object_size_1.padToWord(getStructSize(c)));\n }\n\n return c;\n}\n\nexports.getContent = getContent;\n/**\n * Read the target segment ID from a far pointer.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The target segment ID.\n */\n\nfunction getFarSegmentId(p) {\n return p.segment.getUint32(p.byteOffset + 4);\n}\n\nexports.getFarSegmentId = getFarSegmentId;\n/**\n * Get a number indicating the size of the list's elements.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {ListElementSize} The size of the list's elements.\n */\n\nfunction getListElementSize(p) {\n return p.segment.getUint32(p.byteOffset + 4) & constants_1.LIST_SIZE_MASK;\n}\n\nexports.getListElementSize = getListElementSize;\n/**\n * Get the number of elements in a list pointer. For composite lists, it instead represents the total number of words in\n * the list (not counting the tag word).\n *\n * This method does **not** attempt to distinguish between composite and non-composite lists. To get the correct\n * length for composite lists use `getTargetListLength()` instead.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The length of the list, or total number of words for composite lists.\n */\n\nfunction getListLength(p) {\n return p.segment.getUint32(p.byteOffset + 4) >>> 3;\n}\n\nexports.getListLength = getListLength;\n/**\n * Get the offset (in words) from the end of a pointer to the start of its content. For struct pointers, this is the\n * beginning of the data section, and for list pointers it is the location of the first element. The value should\n * always be zero for interface pointers.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The offset, in words, from the end of the pointer to the start of the data section.\n */\n\nfunction getOffsetWords(p) {\n var o = p.segment.getInt32(p.byteOffset); // Far pointers only have 29 offset bits.\n\n return o & 2 ? o >> 3 : o >> 2;\n}\n\nexports.getOffsetWords = getOffsetWords;\n/**\n * Look up the pointer's type.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {PointerType} The type of pointer.\n */\n\nfunction getPointerType(p) {\n return p.segment.getUint32(p.byteOffset) & constants_1.POINTER_TYPE_MASK;\n}\n\nexports.getPointerType = getPointerType;\n/**\n * Read the number of data words from this struct pointer.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The number of data words in the struct.\n */\n\nfunction getStructDataWords(p) {\n return p.segment.getUint16(p.byteOffset + 4);\n}\n\nexports.getStructDataWords = getStructDataWords;\n/**\n * Read the number of pointers contained in this struct pointer.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The number of pointers in this struct.\n */\n\nfunction getStructPointerLength(p) {\n return p.segment.getUint16(p.byteOffset + 6);\n}\n\nexports.getStructPointerLength = getStructPointerLength;\n/**\n * Get an object describing this struct pointer's size.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {ObjectSize} The size of the struct.\n */\n\nfunction getStructSize(p) {\n return new object_size_1.ObjectSize(getStructDataWords(p) * 8, getStructPointerLength(p));\n}\n\nexports.getStructSize = getStructSize;\n/**\n * Get a pointer to this pointer's composite list tag word, following far pointers as needed.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {Pointer} A pointer to the list's composite tag word.\n */\n\nfunction getTargetCompositeListTag(p) {\n var c = getContent(p); // The composite list tag is always one word before the content.\n\n c.byteOffset -= 8;\n return c;\n}\n\nexports.getTargetCompositeListTag = getTargetCompositeListTag;\n/**\n * Get the object size for the target composite list, following far pointers as needed.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {ObjectSize} An object describing the size of each struct in the list.\n */\n\nfunction getTargetCompositeListSize(p) {\n return getStructSize(getTargetCompositeListTag(p));\n}\n\nexports.getTargetCompositeListSize = getTargetCompositeListSize;\n/**\n * Get the size of the list elements referenced by this pointer, following far pointers if necessary.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {ListElementSize} The size of the elements in the list.\n */\n\nfunction getTargetListElementSize(p) {\n return getListElementSize(followFars(p));\n}\n\nexports.getTargetListElementSize = getTargetListElementSize;\n/**\n * Get the length of the list referenced by this pointer, following far pointers if necessary. If the list is a\n * composite list, it will look up the tag word and read the length from there.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {number} The number of elements in the list.\n */\n\nfunction getTargetListLength(p) {\n var t = followFars(p);\n\n if (getListElementSize(t) === list_element_size_1.ListElementSize.COMPOSITE) {\n // The content is prefixed by a tag word; it's a struct pointer whose offset contains the list's length.\n return getOffsetWords(getTargetCompositeListTag(p));\n }\n\n return getListLength(t);\n}\n\nexports.getTargetListLength = getTargetListLength;\n/**\n * Get the type of a pointer, following far pointers if necessary. For non-far pointers this is equivalent to calling\n * `getPointerType()`.\n *\n * The target of a far pointer can never be another far pointer, and this method will throw if such a situation is\n * encountered.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {PointerType} The type of pointer referenced by this pointer.\n */\n\nfunction getTargetPointerType(p) {\n var t = getPointerType(followFars(p));\n if (t === pointer_type_1.PointerType.FAR) throw new Error(util_1.format(errors_1.PTR_INVALID_FAR_TARGET, p));\n return t;\n}\n\nexports.getTargetPointerType = getTargetPointerType;\n/**\n * Get the size of the struct referenced by a pointer, following far pointers if necessary.\n *\n * @param {Pointer} p The poiner to read from.\n * @returns {ObjectSize} The size of the struct referenced by this pointer.\n */\n\nfunction getTargetStructSize(p) {\n return getStructSize(followFars(p));\n}\n\nexports.getTargetStructSize = getTargetStructSize;\n/**\n * Initialize a pointer to point at the data in the content segment. If the content segment is not the same as the\n * pointer's segment, this will allocate and write far pointers as needed. Nothing is written otherwise.\n *\n * The return value includes a pointer to write the pointer's actual data to (the eventual far target), and the offset\n * value (in words) to use for that pointer. In the case of double-far pointers this offset will always be zero.\n *\n * @param {Segment} contentSegment The segment containing this pointer's content.\n * @param {number} contentOffset The offset within the content segment for the beginning of this pointer's content.\n * @param {Pointer} p The pointer to initialize.\n * @returns {PointerAllocationResult} An object containing a pointer (where the pointer data should be written), and\n * the value to use as the offset for that pointer.\n */\n\nfunction initPointer(contentSegment, contentOffset, p) {\n if (p.segment !== contentSegment) {\n // Need a far pointer.\n trace('Initializing far pointer %s -> %s.', p, contentSegment);\n\n if (!contentSegment.hasCapacity(8)) {\n // GAH! Not enough space in the content segment for a landing pad so we need a double far pointer.\n var landingPad_1 = p.segment.allocate(16);\n trace('GAH! Initializing double-far pointer in %s from %s -> %s.', p, contentSegment, landingPad_1);\n setFarPointer(true, landingPad_1.byteOffset / 8, landingPad_1.segment.id, p);\n setFarPointer(false, contentOffset / 8, contentSegment.id, landingPad_1);\n landingPad_1.byteOffset += 8;\n return new pointer_allocation_result_1.PointerAllocationResult(landingPad_1, 0);\n } // Allocate a far pointer landing pad in the target segment.\n\n\n var landingPad = contentSegment.allocate(8);\n\n if (landingPad.segment.id !== contentSegment.id) {\n throw new Error(errors_1.INVARIANT_UNREACHABLE_CODE);\n }\n\n setFarPointer(false, landingPad.byteOffset / 8, landingPad.segment.id, p);\n return new pointer_allocation_result_1.PointerAllocationResult(landingPad, (contentOffset - landingPad.byteOffset - 8) / 8);\n }\n\n trace('Initializing intra-segment pointer %s -> %a.', p, contentOffset);\n return new pointer_allocation_result_1.PointerAllocationResult(p, (contentOffset - p.byteOffset - 8) / 8);\n}\n\nexports.initPointer = initPointer;\n/**\n * Check if the pointer is a double-far pointer.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {boolean} `true` if it is a double-far pointer, `false` otherwise.\n */\n\nfunction isDoubleFar(p) {\n return getPointerType(p) === pointer_type_1.PointerType.FAR && (p.segment.getUint32(p.byteOffset) & constants_1.POINTER_DOUBLE_FAR_MASK) !== 0;\n}\n\nexports.isDoubleFar = isDoubleFar;\n/**\n * Quickly check to see if the pointer is \"null\". A \"null\" pointer is a zero word, equivalent to an empty struct\n * pointer.\n *\n * @param {Pointer} p The pointer to read from.\n * @returns {boolean} `true` if the pointer is \"null\".\n */\n\nfunction isNull(p) {\n return p.segment.isWordZero(p.byteOffset);\n}\n\nexports.isNull = isNull;\n/**\n * Relocate a pointer to the given destination, ensuring that it points to the same content. This will create far\n * pointers as needed if the content is in a different segment than the destination. After the relocation the source\n * pointer will be erased and is no longer valid.\n *\n * @param {Pointer} dst The desired location for the `src` pointer. Any existing contents will be erased before\n * relocating!\n * @param {Pointer} src The pointer to relocate.\n * @returns {void}\n */\n\nfunction relocateTo(dst, src) {\n var t = followFars(src);\n var lo = t.segment.getUint8(t.byteOffset) & 0x03; // discard the offset\n\n var hi = t.segment.getUint32(t.byteOffset + 4); // Make sure anything dst was pointing to is wiped out.\n\n erase(dst);\n var res = initPointer(t.segment, t.byteOffset + 8 + getOffsetWords(t) * 8, dst); // Keep the low 2 bits and write the new offset.\n\n res.pointer.segment.setUint32(res.pointer.byteOffset, lo | res.offsetWords << 2); // Keep the high 32 bits intact.\n\n res.pointer.segment.setUint32(res.pointer.byteOffset + 4, hi);\n erasePointer(src);\n}\n\nexports.relocateTo = relocateTo;\n/**\n * Write a far pointer.\n *\n * @param {boolean} doubleFar Set to `true` if this is a double far pointer.\n * @param {number} offsetWords The offset, in words, to the target pointer.\n * @param {number} segmentId The segment the target pointer is located in.\n * @param {Pointer} p The pointer to write to.\n * @returns {void}\n */\n\nfunction setFarPointer(doubleFar, offsetWords, segmentId, p) {\n var A = pointer_type_1.PointerType.FAR;\n var B = doubleFar ? 1 : 0;\n var C = offsetWords;\n var D = segmentId;\n p.segment.setUint32(p.byteOffset, A | B << 2 | C << 3);\n p.segment.setUint32(p.byteOffset + 4, D);\n}\n\nexports.setFarPointer = setFarPointer;\n/**\n * Write a raw interface pointer.\n *\n * @param {number} capId The capability ID.\n * @param {Pointer} p The pointer to write to.\n * @returns {void}\n */\n\nfunction setInterfacePointer(capId, p) {\n p.segment.setUint32(p.byteOffset, pointer_type_1.PointerType.OTHER);\n p.segment.setUint32(p.byteOffset + 4, capId);\n}\n\nexports.setInterfacePointer = setInterfacePointer;\n/**\n * Write a raw list pointer.\n *\n * @param {number} offsetWords The number of words from the end of this pointer to the beginning of the list content.\n * @param {ListElementSize} size The size of each element in the list.\n * @param {number} length The number of elements in the list.\n * @param {Pointer} p The pointer to write to.\n * @param {ObjectSize} [compositeSize] For composite lists this describes the size of each element in this list. This\n * is required for composite lists.\n * @returns {void}\n */\n\nfunction setListPointer(offsetWords, size, length, p, compositeSize) {\n if (p === undefined) throw new Error(errors_1.INVARIANT_UNREACHABLE_CODE);\n var A = pointer_type_1.PointerType.LIST;\n var B = offsetWords;\n var C = size;\n var D = length;\n\n if (size === list_element_size_1.ListElementSize.COMPOSITE) {\n if (compositeSize === undefined) throw new TypeError(errors_1.TYPE_COMPOSITE_SIZE_UNDEFINED);\n D *= object_size_1.getWordLength(compositeSize);\n }\n\n p.segment.setUint32(p.byteOffset, A | B << 2);\n p.segment.setUint32(p.byteOffset + 4, C | D << 3);\n}\n\nexports.setListPointer = setListPointer;\n/**\n * Write a raw struct pointer.\n *\n * @param {number} offsetWords The number of words from the end of this pointer to the beginning of the struct's data\n * section.\n * @param {ObjectSize} size An object describing the size of the struct.\n * @param {Pointer} p The pointer to write to.\n * @returns {void}\n */\n\nfunction setStructPointer(offsetWords, size, p) {\n var A = pointer_type_1.PointerType.STRUCT;\n var B = offsetWords;\n var C = object_size_1.getDataWordLength(size);\n var D = size.pointerLength;\n p.segment.setUint32(p.byteOffset, A | B << 2);\n p.segment.setUint16(p.byteOffset + 4, C);\n p.segment.setUint16(p.byteOffset + 6, D);\n}\n\nexports.setStructPointer = setStructPointer;\n/**\n * Read some bits off a pointer to make sure it has the right pointer data.\n *\n * @param {PointerType} pointerType The expected pointer type.\n * @param {Pointer} p The pointer to validate.\n * @param {ListElementSize} [elementSize] For list pointers, the expected element size. Leave this\n * undefined for struct pointers.\n * @returns {void}\n */\n\nfunction validate(pointerType, p, elementSize) {\n if (isNull(p)) return;\n var t = followFars(p); // Check the pointer type.\n\n var A = t.segment.getUint32(t.byteOffset) & constants_1.POINTER_TYPE_MASK;\n if (A !== pointerType) throw new Error(util_1.format(errors_1.PTR_WRONG_POINTER_TYPE, p, pointerType)); // Check the list element size, if provided.\n\n if (elementSize !== undefined) {\n var C = t.segment.getUint32(t.byteOffset + 4) & constants_1.LIST_SIZE_MASK;\n if (C !== elementSize) throw new Error(util_1.format(errors_1.PTR_WRONG_LIST_TYPE, p, list_element_size_1.ListElementSize[elementSize]));\n }\n}\n\nexports.validate = validate;\n\nfunction copyFromList(src, dst) {\n if (dst._capnp.depthLimit <= 0) throw new Error(errors_1.PTR_DEPTH_LIMIT_EXCEEDED);\n var srcContent = getContent(src);\n var srcElementSize = getTargetListElementSize(src);\n var srcLength = getTargetListLength(src);\n var srcCompositeSize;\n var srcStructByteLength;\n var dstContent;\n\n if (srcElementSize === list_element_size_1.ListElementSize.POINTER) {\n dstContent = dst.segment.allocate(object_size_1.getByteLength(getTargetCompositeListSize(src)) * srcLength); // Recursively copy each pointer in the list.\n\n for (var i = 0; i < srcLength; i++) {\n var srcPtr = new Pointer(srcContent.segment, srcContent.byteOffset + (i << 3), src._capnp.depthLimit - 1);\n var dstPtr = new Pointer(dstContent.segment, dstContent.byteOffset + (i << 3), dst._capnp.depthLimit - 1);\n copyFrom(srcPtr, dstPtr);\n }\n } else if (srcElementSize === list_element_size_1.ListElementSize.COMPOSITE) {\n srcCompositeSize = object_size_1.padToWord(getTargetCompositeListSize(src));\n srcStructByteLength = object_size_1.getByteLength(srcCompositeSize);\n dstContent = dst.segment.allocate(object_size_1.getByteLength(srcCompositeSize) * srcLength + 8); // Copy the tag word.\n\n dstContent.segment.copyWord(dstContent.byteOffset, srcContent.segment, srcContent.byteOffset - 8); // Copy the entire contents, including all pointers. This should be more efficient than making `srcLength`\n // copies to skip the pointer sections, and we're about to rewrite all those pointers anyway.\n // PERF: Skip this step if the composite struct only contains pointers.\n\n if (srcCompositeSize.dataByteLength > 0) {\n var wordLength = object_size_1.getWordLength(srcCompositeSize) * srcLength;\n dstContent.segment.copyWords(dstContent.byteOffset + 8, srcContent.segment, srcContent.byteOffset, wordLength);\n } // Recursively copy all the pointers in each struct.\n\n\n for (var i = 0; i < srcLength; i++) {\n for (var j = 0; j < srcCompositeSize.pointerLength; j++) {\n var offset = i * srcStructByteLength + srcCompositeSize.dataByteLength + (j << 3);\n var srcPtr = new Pointer(srcContent.segment, srcContent.byteOffset + offset, src._capnp.depthLimit - 1);\n var dstPtr = new Pointer(dstContent.segment, dstContent.byteOffset + offset + 8, dst._capnp.depthLimit - 1);\n copyFrom(srcPtr, dstPtr);\n }\n }\n } else {\n var byteLength = util_1.padToWord(srcElementSize === list_element_size_1.ListElementSize.BIT ? srcLength + 7 >>> 3 : getListElementByteLength(srcElementSize) * srcLength);\n var wordLength = byteLength >>> 3;\n dstContent = dst.segment.allocate(byteLength); // Copy all of the list contents word-by-word.\n\n dstContent.segment.copyWords(dstContent.byteOffset, srcContent.segment, srcContent.byteOffset, wordLength);\n } // Initialize the list pointer.\n\n\n var res = initPointer(dstContent.segment, dstContent.byteOffset, dst);\n setListPointer(res.offsetWords, srcElementSize, srcLength, res.pointer, srcCompositeSize);\n}\n\nexports.copyFromList = copyFromList;\n\nfunction copyFromStruct(src, dst) {\n if (dst._capnp.depthLimit <= 0) throw new Error(errors_1.PTR_DEPTH_LIMIT_EXCEEDED);\n var srcContent = getContent(src);\n var srcSize = getTargetStructSize(src);\n var srcDataWordLength = object_size_1.getDataWordLength(srcSize); // Allocate space for the destination content.\n\n var dstContent = dst.segment.allocate(object_size_1.getByteLength(srcSize)); // Copy the data section.\n\n dstContent.segment.copyWords(dstContent.byteOffset, srcContent.segment, srcContent.byteOffset, srcDataWordLength); // Copy the pointer section.\n\n for (var i = 0; i < srcSize.pointerLength; i++) {\n var offset = srcSize.dataByteLength + i * 8;\n var srcPtr = new Pointer(srcContent.segment, srcContent.byteOffset + offset, src._capnp.depthLimit - 1);\n var dstPtr = new Pointer(dstContent.segment, dstContent.byteOffset + offset, dst._capnp.depthLimit - 1);\n copyFrom(srcPtr, dstPtr);\n } // Don't touch dst if it's already initialized as a composite list pointer. With composite struct pointers there's\n // no pointer to copy here and we've already copied the contents.\n\n\n if (dst._capnp.compositeList) return; // Initialize the struct pointer.\n\n var res = initPointer(dstContent.segment, dstContent.byteOffset, dst);\n setStructPointer(res.offsetWords, srcSize, res.pointer);\n}\n\nexports.copyFromStruct = copyFromStruct;\n/**\n * Track the allocation of a new Pointer object.\n *\n * This will decrement an internal counter tracking how many bytes have been traversed in the message so far. After\n * a certain limit, this method will throw an error in order to prevent a certain class of DoS attacks.\n *\n * @param {Message} message The message the pointer belongs to.\n * @param {Pointer} p The pointer being allocated.\n * @returns {void}\n */\n\nfunction trackPointerAllocation(message, p) {\n message._capnp.traversalLimit -= 8;\n\n if (message._capnp.traversalLimit <= 0) {\n throw new Error(util_1.format(errors_1.PTR_TRAVERSAL_LIMIT_EXCEEDED, p));\n }\n}\n\nexports.trackPointerAllocation = trackPointerAllocation;","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _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 (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\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\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return _assign.apply(this, arguments);\n};\n\nexport { _assign as __assign };\nexport function __rest(s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : new P(function (resolve) {\n resolve(result.value);\n }).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport function __exportStar(m, exports) {\n for (var p in m) {\n if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n }\n}\nexport function __values(o) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator],\n i = 0;\n if (m) return m.call(o);\n return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\n;\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\n }\n result.default = mod;\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ListElementSize;\n\n(function (ListElementSize) {\n ListElementSize[ListElementSize[\"VOID\"] = 0] = \"VOID\";\n ListElementSize[ListElementSize[\"BIT\"] = 1] = \"BIT\";\n ListElementSize[ListElementSize[\"BYTE\"] = 2] = \"BYTE\";\n ListElementSize[ListElementSize[\"BYTE_2\"] = 3] = \"BYTE_2\";\n ListElementSize[ListElementSize[\"BYTE_4\"] = 4] = \"BYTE_4\";\n ListElementSize[ListElementSize[\"BYTE_8\"] = 5] = \"BYTE_8\";\n ListElementSize[ListElementSize[\"POINTER\"] = 6] = \"POINTER\";\n ListElementSize[ListElementSize[\"COMPOSITE\"] = 7] = \"COMPOSITE\";\n})(ListElementSize = exports.ListElementSize || (exports.ListElementSize = {}));\n\nexports.ListElementOffset = [0, 0.125, 1, 2, 4, 8, 8, NaN];","import arrayWithHoles from \"./arrayWithHoles\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit\";\nimport nonIterableRest from \"./nonIterableRest\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === \"[object Arguments]\")) {\n return;\n }\n\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar util_1 = require(\"../../util\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar object_size_1 = require(\"../object-size\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list');\ntrace('load');\n/**\n * A generic list class. Implements Filterable,\n */\n\nvar List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(List, _super);\n\n function List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n List.toString = function () {\n return this._capnp.displayName;\n };\n\n List.prototype.all = function (callbackfn) {\n var length = this.getLength();\n\n for (var i = 0; i < length; i++) {\n if (!callbackfn(this.get(i), i)) return false;\n }\n\n return true;\n };\n\n List.prototype.any = function (callbackfn) {\n var length = this.getLength();\n\n for (var i = 0; i < length; i++) {\n if (callbackfn(this.get(i), i)) return true;\n }\n\n return false;\n };\n\n List.prototype.ap = function (callbackfns) {\n var _this = this;\n\n var length = this.getLength();\n var res = [];\n\n var _loop_1 = function _loop_1(i) {\n res.push.apply(res, callbackfns.map(function (f) {\n return f(_this.get(i), i);\n }));\n };\n\n for (var i = 0; i < length; i++) {\n _loop_1(i);\n }\n\n return res;\n };\n\n List.prototype.concat = function (other) {\n var length = this.getLength();\n var otherLength = other.getLength();\n var res = new Array(length + otherLength);\n\n for (var i = 0; i < length; i++) {\n res[i] = this.get(i);\n }\n\n for (var i = 0; i < otherLength; i++) {\n res[i + length] = other.get(i);\n }\n\n return res;\n };\n\n List.prototype.drop = function (n) {\n var length = this.getLength();\n var res = new Array(length);\n\n for (var i = n; i < length; i++) {\n res[i] = this.get(i);\n }\n\n return res;\n };\n\n List.prototype.dropWhile = function (callbackfn) {\n var length = this.getLength();\n var res = [];\n var drop = true;\n\n for (var i = 0; i < length; i++) {\n var v = this.get(i);\n if (drop) drop = callbackfn(v, i);\n if (!drop) res.push(v);\n }\n\n return res;\n };\n\n List.prototype.empty = function () {\n return [];\n };\n\n List.prototype.every = function (callbackfn) {\n return this.all(callbackfn);\n };\n\n List.prototype.filter = function (callbackfn) {\n var length = this.getLength();\n var res = [];\n\n for (var i = 0; i < length; i++) {\n var value = this.get(i);\n if (callbackfn(value, i)) res.push(value);\n }\n\n return res;\n };\n\n List.prototype.find = function (callbackfn) {\n var length = this.getLength();\n\n for (var i = 0; i < length; i++) {\n var value = this.get(i);\n if (callbackfn(value, i)) return value;\n }\n\n return undefined;\n };\n\n List.prototype.forEach = function (callbackfn) {\n var length = this.getLength();\n\n for (var i = 0; i < length; i++) {\n callbackfn(this.get(i), i);\n }\n };\n\n List.prototype.get = function (_index) {\n throw new TypeError();\n };\n /**\n * Get the length of this list.\n *\n * @returns {number} The number of elements in this list.\n */\n\n\n List.prototype.getLength = function () {\n return pointer_1.getTargetListLength(this);\n };\n\n List.prototype.groupBy = function (callbackfn) {\n var length = this.getLength();\n var res = {};\n\n for (var i = 0; i < length; i++) {\n var v = this.get(i);\n res[callbackfn(v, i)] = v;\n }\n\n return res;\n };\n\n List.prototype.intersperse = function (sep) {\n var length = this.getLength();\n var res = new Array(length);\n\n for (var i = 0; i < length; i++) {\n if (i > 0) res.push(sep);\n res.push(this.get(i));\n }\n\n return res;\n };\n\n List.prototype.map = function (callbackfn) {\n var length = this.getLength();\n var res = new Array(length);\n\n for (var i = 0; i < length; i++) {\n res[i] = callbackfn(this.get(i), i);\n }\n\n return res;\n };\n\n List.prototype.reduce = function (callbackfn, initialValue) {\n var i = 0;\n var res;\n\n if (initialValue === undefined) {\n // LINT: It's okay, I know what I'm doing here.\n\n /* tslint:disable-next-line:no-any */\n res = this.get(0);\n i++;\n } else {\n res = initialValue;\n }\n\n for (; i < this.getLength(); i++) {\n res = callbackfn(res, this.get(i), i);\n }\n\n return res;\n };\n\n List.prototype.set = function (_index, _value) {\n throw new TypeError();\n };\n\n List.prototype.slice = function (start, end) {\n if (start === void 0) {\n start = 0;\n }\n\n var length = end ? Math.min(this.getLength(), end) : this.getLength();\n var res = new Array(length - start);\n\n for (var i = start; i < length; i++) {\n res[i] = this.get(i);\n }\n\n return res;\n };\n\n List.prototype.some = function (callbackfn) {\n return this.any(callbackfn);\n };\n\n List.prototype.take = function (n) {\n var length = Math.min(this.getLength(), n);\n var res = new Array(length);\n\n for (var i = 0; i < length; i++) {\n res[i] = this.get(i);\n }\n\n return res;\n };\n\n List.prototype.takeWhile = function (callbackfn) {\n var length = this.getLength();\n var res = [];\n var take;\n\n for (var i = 0; i < length; i++) {\n var v = this.get(i);\n take = callbackfn(v, i);\n if (!take) return res;\n res.push(v);\n }\n\n return res;\n };\n\n List.prototype.toArray = function () {\n return this.map(util_1.identity);\n };\n\n List.prototype.toString = function () {\n return \"List_\" + _super.prototype.toString.call(this);\n };\n\n List._capnp = {\n displayName: 'List<Generic>',\n size: list_element_size_1.ListElementSize.VOID\n };\n List.initList = initList;\n return List;\n}(pointer_1.Pointer);\n\nexports.List = List;\n/**\n * Initialize the list with the given element size and length. This will allocate new space for the list, ideally in\n * the same segment as this pointer.\n *\n * @param {ListElementSize} elementSize The size of each element in the list.\n * @param {number} length The number of elements in the list.\n * @param {List<T>} l The list to initialize.\n * @param {ObjectSize} [compositeSize] The size of each element in a composite list. This value is required for\n * composite lists.\n * @returns {void}\n */\n\nfunction initList(elementSize, length, l, compositeSize) {\n var c;\n\n switch (elementSize) {\n case list_element_size_1.ListElementSize.BIT:\n c = l.segment.allocate(Math.ceil(length / 8));\n break;\n\n case list_element_size_1.ListElementSize.BYTE:\n case list_element_size_1.ListElementSize.BYTE_2:\n case list_element_size_1.ListElementSize.BYTE_4:\n case list_element_size_1.ListElementSize.BYTE_8:\n case list_element_size_1.ListElementSize.POINTER:\n c = l.segment.allocate(length * pointer_1.getListElementByteLength(elementSize));\n break;\n\n case list_element_size_1.ListElementSize.COMPOSITE:\n if (compositeSize === undefined) throw new Error(util_1.format(errors_1.PTR_COMPOSITE_SIZE_UNDEFINED));\n compositeSize = object_size_1.padToWord(compositeSize);\n var byteLength = object_size_1.getByteLength(compositeSize) * length; // We need to allocate an extra 8 bytes for the tag word, then make sure we write the length to it. We advance\n // the content pointer by 8 bytes so that it then points to the first list element as intended. Everything\n // starts off zeroed out so these nested structs don't need to be initialized in any way.\n\n c = l.segment.allocate(byteLength + 8);\n pointer_1.setStructPointer(length, compositeSize, c);\n trace('Wrote composite tag word %s for %s.', c, l);\n break;\n\n case list_element_size_1.ListElementSize.VOID:\n // No need to allocate anything, we can write the list pointer right here.\n pointer_1.setListPointer(0, elementSize, length, l);\n return;\n\n default:\n throw new Error(util_1.format(errors_1.PTR_INVALID_LIST_SIZE, elementSize));\n }\n\n var res = pointer_1.initPointer(c.segment, c.byteOffset, l);\n pointer_1.setListPointer(res.offsetWords, elementSize, length, res.pointer, compositeSize);\n}\n\nexports.initList = initList;","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\n/* eslint-disable no-proto */\n'use strict';\n\nvar base64 = require('base64-js');\n\nvar ieee754 = require('ieee754');\n\nvar isArray = require('isarray');\n\nexports.Buffer = Buffer;\nexports.SlowBuffer = SlowBuffer;\nexports.INSPECT_MAX_BYTES = 50;\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n/*\n * Export kMaxLength after typed array support is determined.\n */\n\nexports.kMaxLength = kMaxLength();\n\nfunction typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n}\n\nfunction kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n}\n\nfunction createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n}\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\nfunction Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n// TODO: Legacy, not needed anymore. Remove in next major version.\n\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n};\n\nfunction from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n}\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n}\n\nfunction assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n}\n\nfunction alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n}\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n};\n\nfunction allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n}\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n};\n\nfunction fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n}\n\nfunction fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n}\n\nfunction fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n}\n\nfunction fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n}\n\nfunction checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n}\n\nfunction SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n}\n\nBuffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n};\n\nBuffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n};\n\nBuffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n};\n\nBuffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n};\n\nfunction byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\n\nBuffer.byteLength = byteLength;\n\nfunction slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n} // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\n\n\nBuffer.prototype._isBuffer = true;\n\nfunction swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n};\n\nBuffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n};\n\nBuffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n};\n\nBuffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n};\n\nBuffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n};\n\nBuffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n};\n\nBuffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n}; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\n\n\nfunction bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n}\n\nfunction arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n}\n\nBuffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n};\n\nBuffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n};\n\nfunction hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n}\n\nfunction utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nfunction asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n}\n\nfunction latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n}\n\nfunction base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n}\n\nfunction ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n}\n\nBuffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n};\n\nfunction base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n}\n\nfunction utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n} // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\n\n\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n}\n\nfunction asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n}\n\nfunction latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n}\n\nfunction hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n}\n\nfunction utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n}\n\nBuffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n};\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\nfunction checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n};\n\nBuffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n};\n\nBuffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n};\n\nBuffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n};\n\nfunction checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nfunction objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nfunction objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n};\n\nBuffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n};\n\nfunction checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n}\n\nfunction writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n};\n\nfunction writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n}; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\nBuffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n}; // Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\n\n\nBuffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n}; // HELPER FUNCTIONS\n// ================\n\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n}\n\nfunction stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n}\n\nfunction toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n}\n\nfunction utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n}\n\nfunction asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n}\n\nfunction utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n}\n\nfunction base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n}\n\nfunction blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n}\n\nfunction isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n}","var g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","exports = module.exports = ap;\n\nfunction ap(args, fn) {\n return function () {\n var rest = [].slice.call(arguments),\n first = args.slice();\n first.push.apply(first, rest);\n return fn.apply(this, first);\n };\n}\n\nexports.pa = pa;\n\nfunction pa(args, fn) {\n return function () {\n var rest = [].slice.call(arguments);\n rest.push.apply(rest, args);\n return fn.apply(this, rest);\n };\n}\n\nexports.apa = apa;\n\nfunction apa(left, right, fn) {\n return function () {\n return fn.apply(this, left.concat.apply(left, arguments).concat(right));\n };\n}\n\nexports.partial = partial;\n\nfunction partial(fn) {\n var args = [].slice.call(arguments, 1);\n return ap(args, fn);\n}\n\nexports.partialRight = partialRight;\n\nfunction partialRight(fn) {\n var args = [].slice.call(arguments, 1);\n return pa(args, fn);\n}\n\nexports.curry = curry;\n\nfunction curry(fn) {\n return partial(partial, fn);\n}\n\nexports.curryRight = function curryRight(fn) {\n return partial(partialRight, fn);\n};","// shim for using process in browser\nvar process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\n\nfunction defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n}\n\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n})();\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n}\n\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n}\n\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}; // v8 likes predictible objects\n\n\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\n\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\n\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) {\n return [];\n};\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () {\n return '/';\n};\n\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\n\nprocess.umask = function () {\n return 0;\n};","\"use strict\";\n/**\n * This file contains all the error strings used in the library. Also contains silliness.\n *\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"./constants\");\n\nvar trace = debug_1.default('capnp:errors');\ntrace('load');\n\nfunction assertNever(n) {\n throw new Error(exports.INVARIANT_UNREACHABLE_CODE + (\" (never block hit with: \" + n + \")\"));\n}\n\nexports.assertNever = assertNever; // Invariant violations (sometimes known as \"precondition failed\").\n//\n// All right, hold up the brakes. This is a serious 1 === 0 WHAT THE FAILURE moment here. Tell the SO's you won't be\n// home for dinner.\n\nexports.INVARIANT_UNREACHABLE_CODE = 'CAPNP-TS000 Unreachable code detected.'; // Message errors.\n//\n// Now who told you it would be a good idea to fuzz the inputs? You just made the program sad.\n\nexports.MSG_INVALID_FRAME_HEADER = 'CAPNP-TS001 Attempted to parse an invalid message frame header; are you sure this is a Cap\\'n Proto message?';\nexports.MSG_NO_SEGMENTS_IN_ARENA = 'CAPNP-TS002 Attempted to preallocate a message with no segments in the arena.';\nexports.MSG_PACK_NOT_WORD_ALIGNED = 'CAPNP-TS003 Attempted to pack a message that was not word-aligned.';\nexports.MSG_SEGMENT_OUT_OF_BOUNDS = 'CAPNP-TS004 Segment ID %X is out of bounds for message %s.';\nexports.MSG_SEGMENT_TOO_SMALL = 'CAPNP-TS005 First segment must have at least enough room to hold the root pointer (8 bytes).'; // Used for methods that are not yet implemented.\n//\n// My bad. I'll get to it. Eventually.\n\nexports.NOT_IMPLEMENTED = 'CAPNP-TS006 %s is not implemented.'; // Pointer-related errors.\n//\n// Look, this is probably the hardest part of the code. Cut some slack here! You probably found a bug.\n\nexports.PTR_ADOPT_COMPOSITE_STRUCT = 'CAPNP-TS007 Attempted to adopt a struct into a composite list (%s).';\nexports.PTR_ADOPT_WRONG_MESSAGE = 'CAPNP-TS008 Attempted to adopt %s into a pointer in a different message %s.';\nexports.PTR_ALREADY_ADOPTED = 'CAPNP-TS009 Attempted to adopt %s more than once.';\nexports.PTR_COMPOSITE_SIZE_UNDEFINED = 'CAPNP-TS010 Attempted to set a composite list without providing a composite element size.';\nexports.PTR_DEPTH_LIMIT_EXCEEDED = 'CAPNP-TS011 Nesting depth limit exceeded for %s.';\nexports.PTR_DISOWN_COMPOSITE_STRUCT = 'CAPNP-TS012 Attempted to disown a struct member from a composite list (%s).';\nexports.PTR_INIT_COMPOSITE_STRUCT = 'CAPNP-TS013 Attempted to initialize a struct member from a composite list (%s).';\nexports.PTR_INIT_NON_GROUP = 'CAPNP-TS014 Attempted to initialize a group field with a non-group struct class.';\nexports.PTR_INVALID_FAR_TARGET = 'CAPNP-TS015 Target of a far pointer (%s) is another far pointer.';\nexports.PTR_INVALID_LIST_SIZE = 'CAPNP-TS016 Invalid list element size: %x.';\nexports.PTR_INVALID_POINTER_TYPE = 'CAPNP-TS017 Invalid pointer type: %x.';\nexports.PTR_INVALID_UNION_ACCESS = 'CAPNP-TS018 Attempted to access getter on %s for union field %s that is not currently set (wanted: %d, found: %d).';\nexports.PTR_OFFSET_OUT_OF_BOUNDS = 'CAPNP-TS019 Pointer offset %a is out of bounds for underlying buffer.';\nexports.PTR_STRUCT_DATA_OUT_OF_BOUNDS = 'CAPNP-TS020 Attempted to access out-of-bounds struct data (struct: %s, %d bytes at %a, data words: %d).';\nexports.PTR_STRUCT_POINTER_OUT_OF_BOUNDS = 'CAPNP-TS021 Attempted to access out-of-bounds struct pointer (%s, index: %d, length: %d).';\nexports.PTR_TRAVERSAL_LIMIT_EXCEEDED = 'CAPNP-TS022 Traversal limit exceeded! Slow down! %s';\nexports.PTR_WRONG_LIST_TYPE = 'CAPNP-TS023 Cannot convert %s to a %s list.';\nexports.PTR_WRONG_POINTER_TYPE = 'CAPNP-TS024 Attempted to convert pointer %s to a %s type.';\nexports.PTR_WRONG_COMPOSITE_DATA_SIZE = 'CAPNP-TS025 Attempted to convert %s to a composite list with the wrong data size (found: %d).';\nexports.PTR_WRONG_COMPOSITE_PTR_SIZE = 'CAPNP-TS026 Attempted to convert %s to a composite list with the wrong pointer size (found: %d).';\nexports.PTR_WRONG_STRUCT_DATA_SIZE = 'CAPNP-TS027 Attempted to convert %s to a struct with the wrong data size (found: %d).';\nexports.PTR_WRONG_STRUCT_PTR_SIZE = 'CAPNP-TS028 Attempted to convert %s to a struct with the wrong pointer size (found: %d).'; // Custom error messages for the built-in `RangeError` class.\n//\n// You don't get a witty comment with these.\n\nexports.RANGE_INT32_OVERFLOW = 'CAPNP-TS029 32-bit signed integer overflow detected.';\nexports.RANGE_INT64_UNDERFLOW = 'CAPNP-TS030 Buffer is not large enough to hold a word.';\nexports.RANGE_INVALID_UTF8 = 'CAPNP-TS031 Invalid UTF-8 code sequence detected.';\nexports.RANGE_SIZE_OVERFLOW = \"CAPNP-TS032 Size %x exceeds maximum \" + constants_1.MAX_SEGMENT_LENGTH.toString(16) + \".\";\nexports.RANGE_UINT32_OVERFLOW = 'CAPNP-TS033 32-bit unsigned integer overflow detected.'; // Segment-related errors.\n//\n// These suck. Deal with it.\n\nexports.SEG_BUFFER_NOT_ALLOCATED = 'CAPNP-TS034 allocate() needs to be called at least once before getting a buffer.';\nexports.SEG_GET_NON_ZERO_SINGLE = 'CAPNP-TS035 Attempted to get a segment other than 0 (%d) from a single segment arena.';\nexports.SEG_ID_OUT_OF_BOUNDS = 'CAPNP-TS036 Attempted to get an out-of-bounds segment (%d).';\nexports.SEG_NOT_WORD_ALIGNED = 'CAPNP-TS037 Segment buffer length %d is not a multiple of 8.';\nexports.SEG_REPLACEMENT_BUFFER_TOO_SMALL = 'CAPNP-TS038 Attempted to replace a segment buffer with one that is smaller than the allocated space.';\nexports.SEG_SIZE_OVERFLOW = \"CAPNP-TS039 Requested size %x exceeds maximum value (\" + constants_1.MAX_SEGMENT_LENGTH + \").\"; // Custom error messages for the built-in `TypeError` class.\n//\n// If it looks like a duck, quacks like an elephant, and has hooves for feet, it's probably JavaScript.\n\nexports.TYPE_COMPOSITE_SIZE_UNDEFINED = 'CAPNP-TS040 Must provide a composite element size for composite list pointers.';\nexports.TYPE_GET_GENERIC_LIST = 'CAPNP-TS041 Attempted to call get() on a generic list.';\nexports.TYPE_SET_GENERIC_LIST = 'CAPNP-TS042 Attempted to call set() on a generic list.';","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // LINT: a lot of the util functions need the any type.\n\n/* tslint:disable:no-any no-unsafe-any */\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"./constants\");\n\nvar errors_1 = require(\"./errors\");\n\nvar trace = debug_1.default('capnp:util');\ntrace('load');\n/**\n * Dump a hex string from the given buffer.\n *\n * @export\n * @param {ArrayBuffer} buffer The buffer to convert.\n * @returns {string} A hexadecimal string representing the buffer.\n */\n\nfunction bufferToHex(buffer) {\n var a = new Uint8Array(buffer);\n var h = [];\n\n for (var i = 0; i < a.byteLength; i++) {\n h.push(pad(a[i].toString(16), 2));\n }\n\n return \"[\" + h.join(' ') + \"]\";\n}\n\nexports.bufferToHex = bufferToHex;\n/**\n * Throw an error if the provided value cannot be represented as a 32-bit integer.\n *\n * @export\n * @param {number} value The number to check.\n * @returns {number} The same number if it is valid.\n */\n\nfunction checkInt32(value) {\n if (value > constants_1.MAX_INT32 || value < -constants_1.MAX_INT32) throw new RangeError(errors_1.RANGE_INT32_OVERFLOW);\n return value;\n}\n\nexports.checkInt32 = checkInt32;\n\nfunction checkUint32(value) {\n if (value < 0 || value > constants_1.MAX_UINT32) throw new RangeError(errors_1.RANGE_UINT32_OVERFLOW);\n return value;\n}\n\nexports.checkUint32 = checkUint32;\n/**\n * Decode a UTF-8 encoded byte array into a JavaScript string (UCS-2).\n *\n * @export\n * @param {Uint8Array} src A utf-8 encoded byte array.\n * @returns {string} A string representation of the byte array.\n */\n\nfunction decodeUtf8(src) {\n // This ain't for the faint of heart, kids. If you suffer from seizures, heart palpitations, or have had a history of\n // stroke you may want to look away now.\n var l = src.byteLength;\n var dst = '';\n var i = 0;\n var cp = 0;\n var a = 0;\n var b = 0;\n var c = 0;\n var d = 0;\n\n while (i < l) {\n a = src[i++];\n\n if ((a & 128) === 0) {\n cp = a;\n } else if ((a & 224) === 192) {\n if (i >= l) throw new RangeError(errors_1.RANGE_INVALID_UTF8);\n b = src[i++];\n cp = (a & 31) << 6 | b & 63;\n } else if ((a & 240) === 224) {\n if (i + 1 >= l) throw new RangeError(errors_1.RANGE_INVALID_UTF8);\n b = src[i++];\n c = src[i++];\n cp = (a & 15) << 12 | (b & 63) << 6 | c & 63;\n } else if ((a & 248) === 240) {\n if (i + 2 >= l) throw new RangeError(errors_1.RANGE_INVALID_UTF8);\n b = src[i++];\n c = src[i++];\n d = src[i++];\n cp = (a & 7) << 18 | (b & 63) << 12 | (c & 63) << 6 | d & 63;\n } else {\n throw new RangeError(errors_1.RANGE_INVALID_UTF8);\n }\n\n if (cp <= 0xd7ff || cp >= 0xe000 && cp <= 0xffff) {\n dst += String.fromCharCode(cp);\n } else {\n // We must reach into the astral plane and construct the surrogate pair!\n cp -= 0x00010000;\n var hi = (cp >>> 10) + 0xd800;\n var lo = (cp & 0x03ff) + 0xdc00;\n if (hi < 0xd800 || hi > 0xdbff) throw new RangeError(errors_1.RANGE_INVALID_UTF8);\n dst += String.fromCharCode(hi, lo);\n }\n }\n\n return dst;\n}\n\nexports.decodeUtf8 = decodeUtf8;\n\nfunction dumpBuffer(buffer) {\n var b = buffer instanceof ArrayBuffer ? new Uint8Array(buffer) : new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n var byteLength = Math.min(b.byteLength, constants_1.MAX_BUFFER_DUMP_BYTES);\n var r = format('\\n=== buffer[%d] ===', byteLength);\n\n for (var j = 0; j < byteLength; j += 16) {\n r += \"\\n\" + pad(j.toString(16), 8) + \": \";\n var s = '';\n var k = void 0;\n\n for (k = 0; k < 16 && j + k < b.byteLength; k++) {\n var v = b[j + k];\n r += pad(v.toString(16), 2) + \" \"; // Printable ASCII range.\n\n s += v > 31 && v < 255 ? String.fromCharCode(v) : '·';\n if (k === 7) r += ' ';\n }\n\n r += \"\" + repeat((17 - k) * 3, ' ') + s;\n }\n\n r += '\\n';\n\n if (byteLength !== b.byteLength) {\n r += format('=== (truncated %d bytes) ===\\n', b.byteLength - byteLength);\n }\n\n return r;\n}\n\nexports.dumpBuffer = dumpBuffer;\n/**\n * Encode a JavaScript string (UCS-2) to a UTF-8 encoded string inside a Uint8Array.\n *\n * Note that the underlying buffer for the array will likely be larger than the actual contents; ignore the extra bytes.\n *\n * @export\n * @param {string} src The input string.\n * @returns {Uint8Array} A UTF-8 encoded buffer with the string's contents.\n */\n\nfunction encodeUtf8(src) {\n var l = src.length;\n var dst = new Uint8Array(new ArrayBuffer(l * 4));\n var j = 0;\n\n for (var i = 0; i < l; i++) {\n var c = src.charCodeAt(i);\n\n if (c <= 0x7f) {\n dst[j++] = c;\n } else if (c <= 0x07ff) {\n dst[j++] = 192 | c >>> 6;\n dst[j++] = 128 | c >>> 0 & 63;\n } else if (c <= 0xd7ff || c >= 0xe000) {\n dst[j++] = 224 | c >>> 12;\n dst[j++] = 128 | c >>> 6 & 63;\n dst[j++] = 128 | c >>> 0 & 63;\n } else {\n // Make sure the surrogate pair is complete.\n\n /* istanbul ignore next */\n if (i + 1 >= l) throw new RangeError(errors_1.RANGE_INVALID_UTF8); // I cast thee back into the astral plane.\n\n var hi = c - 0xd800;\n var lo = src.charCodeAt(++i) - 0xdc00;\n var cp = (hi << 10 | lo) + 0x00010000;\n dst[j++] = 240 | cp >>> 18;\n dst[j++] = 128 | cp >>> 12 & 63;\n dst[j++] = 128 | cp >>> 6 & 63;\n dst[j++] = 128 | cp >>> 0 & 63;\n }\n }\n\n return dst.subarray(0, j);\n}\n\nexports.encodeUtf8 = encodeUtf8;\n/**\n * Produce a `printf`-style string. Nice for providing arguments to `assert` without paying the cost for string\n * concatenation up front. Precision is supported for floating point numbers.\n *\n * @param {string} s The format string. Supported format specifiers: b, c, d, f, j, o, s, x, and X.\n * @param {...any} args Values to be formatted in the string. Arguments beyond what are consumed by the format string\n * are ignored.\n * @returns {string} The formatted string.\n */\n\nfunction format(s) {\n var args = [];\n\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n\n var n = s.length;\n var arg;\n var argIndex = 0;\n var c;\n var escaped = false;\n var i = 0;\n var leadingZero = false;\n var precision;\n var result = '';\n\n function nextArg() {\n return args[argIndex++];\n }\n\n function slurpNumber() {\n var digits = '';\n\n while (/\\d/.test(s[i])) {\n digits += s[i++];\n c = s[i];\n }\n\n return digits.length > 0 ? parseInt(digits, 10) : null;\n }\n\n for (; i < n; ++i) {\n c = s[i];\n\n if (escaped) {\n escaped = false;\n\n if (c === '.') {\n leadingZero = false;\n c = s[++i];\n } else if (c === '0' && s[i + 1] === '.') {\n leadingZero = true;\n i += 2;\n c = s[i];\n } else {\n leadingZero = true;\n }\n\n precision = slurpNumber();\n\n switch (c) {\n case 'a':\n // number in hex with padding\n result += '0x' + pad(parseInt(nextArg(), 10).toString(16), 8);\n break;\n\n case 'b':\n // number in binary\n result += parseInt(nextArg(), 10).toString(2);\n break;\n\n case 'c':\n // character\n arg = nextArg();\n\n if (typeof arg === 'string' || arg instanceof String) {\n result += arg;\n } else {\n result += String.fromCharCode(parseInt(arg, 10));\n }\n\n break;\n\n case 'd':\n // number in decimal\n result += parseInt(nextArg(), 10);\n break;\n\n case 'f':\n // floating point number\n var tmp = String(parseFloat(nextArg()).toFixed(precision || 6));\n result += leadingZero ? tmp : tmp.replace(/^0/, '');\n break;\n\n case 'j':\n // JSON\n result += JSON.stringify(nextArg());\n break;\n\n case 'o':\n // number in octal\n result += '0' + parseInt(nextArg(), 10).toString(8);\n break;\n\n case 's':\n // string\n result += nextArg();\n break;\n\n case 'x':\n // lowercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16);\n break;\n\n case 'X':\n // uppercase hexadecimal\n result += '0x' + parseInt(nextArg(), 10).toString(16).toUpperCase();\n break;\n\n default:\n result += c;\n break;\n }\n } else if (c === '%') {\n escaped = true;\n } else {\n result += c;\n }\n }\n\n return result;\n}\n\nexports.format = format;\n/**\n * Return the thing that was passed in. Yaaaaawn.\n *\n * @export\n * @template T\n * @param {T} x A thing.\n * @returns {T} The same thing.\n */\n\nfunction identity(x) {\n return x;\n}\n\nexports.identity = identity;\n\nfunction pad(v, width, pad) {\n if (pad === void 0) {\n pad = '0';\n }\n\n return v.length >= width ? v : new Array(width - v.length + 1).join(pad) + v;\n}\n\nexports.pad = pad;\n/**\n * Add padding to a number to make it divisible by 8. Typically used to pad byte sizes so they align to a word boundary.\n *\n * @export\n * @param {number} size The number to pad.\n * @returns {number} The padded number.\n */\n\nfunction padToWord(size) {\n return size + 7 & ~7;\n}\n\nexports.padToWord = padToWord;\n/**\n * Repeat a string n times. Shamelessly copied from lodash.repeat.\n *\n * @param {number} times Number of times to repeat.\n * @param {string} str The string to repeat.\n * @returns {string} The repeated string.\n */\n\nfunction repeat(times, str) {\n var out = '';\n var n = times;\n var s = str;\n if (n < 1 || n > Number.MAX_VALUE) return out; // https://en.wikipedia.org/wiki/Exponentiation_by_squaring\n\n do {\n if (n % 2) out += s;\n n = Math.floor(n / 2);\n if (n) s += s;\n } while (n);\n\n return out;\n}\n\nexports.repeat = repeat; // Set up custom debug formatters.\n\n/* tslint:disable:no-string-literal */\n\n/* istanbul ignore next */\n\ndebug_1.default.formatters['h'] = function (v) {\n return v.toString('hex');\n};\n/* istanbul ignore next */\n\n\ndebug_1.default.formatters['x'] = function (v) {\n return \"0x\" + v.toString(16);\n};\n/* istanbul ignore next */\n\n\ndebug_1.default.formatters['a'] = function (v) {\n return \"0x\" + pad(v.toString(16), 8);\n};\n/* istanbul ignore next */\n\n\ndebug_1.default.formatters['X'] = function (v) {\n return \"0x\" + v.toString(16).toUpperCase();\n};\n/* tslint:enable:no-string-literal */","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self // eslint-disable-next-line no-new-func\n: Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n}); // Perform some bit gymnastics to determine the native endian format.\n\nvar tmpWord = new DataView(new ArrayBuffer(8));\nnew Uint16Array(tmpWord.buffer)[0] = 0x0102;\n/** Default size (in bytes) for newly allocated segments. */\n\nexports.DEFAULT_BUFFER_SIZE = 4096;\nexports.DEFAULT_DECODE_LIMIT = 64 << 20; // 64 MiB\n\n/**\n * Limit to how deeply nested pointers are allowed to be. The root struct of a message will start at this value, and it\n * is decremented as pointers are dereferenced.\n */\n\nexports.DEFAULT_DEPTH_LIMIT = 64;\n/**\n * Limit to the number of **bytes** that can be traversed in a single message. This is necessary to prevent certain\n * classes of DoS attacks where maliciously crafted data can be self-referencing in a way that wouldn't trigger the\n * depth limit.\n *\n * For this reason, it is advised to cache pointers into variables and not constantly dereference them since the\n * message's traversal limit gets decremented each time.\n */\n\nexports.DEFAULT_TRAVERSE_LIMIT = 64 << 20; // 64 MiB\n\n/**\n * When allocating array buffers dynamically (while packing or in certain Arena implementations) the previous buffer's\n * size is multiplied by this number to determine the next buffer's size. This is chosen to keep both time spent\n * reallocating and wasted memory to a minimum.\n *\n * Smaller numbers would save memory at the expense of CPU time.\n */\n\nexports.GROWTH_FACTOR = 1.5;\n/** A bitmask applied to obtain the size of a list pointer. */\n\nexports.LIST_SIZE_MASK = 0x00000007;\n/** Maximum number of bytes to dump at once when dumping array buffers to string. */\n\nexports.MAX_BUFFER_DUMP_BYTES = 8192;\n/** The maximum value for a 32-bit integer. */\n\nexports.MAX_INT32 = 0x7fffffff;\n/** The maximum value for a 32-bit unsigned integer. */\n\nexports.MAX_UINT32 = 0xffffffff;\n/** The largest integer that can be precisely represented in JavaScript. */\n\nexports.MAX_SAFE_INTEGER = 9007199254740991;\n/** Maximum limit on the number of segments in a message stream. */\n\nexports.MAX_STREAM_SEGMENTS = 512;\n/** The smallest integer that can be precisely represented in JavaScript. */\n\nexports.MIN_SAFE_INTEGER = -9007199254740991;\n/** Minimum growth increment for a SingleSegmentArena. */\n\nexports.MIN_SINGLE_SEGMENT_GROWTH = 4096;\n/**\n * This will be `true` if the machine running this code stores numbers natively in little-endian format. This is useful\n * for some numeric type conversions when the endianness does not affect the output. Using the native endianness for\n * these operations is _slightly_ faster.\n */\n\nexports.NATIVE_LITTLE_ENDIAN = tmpWord.getUint8(0) === 0x02;\n/**\n * When packing a message, this is the number of zero bytes required after a SPAN (0xff) tag is written to the packed\n * message before the span is terminated.\n *\n * This little detail is left up to the implementation because it can be tuned for performance. Setting this to a higher\n * value may help with messages that contain a ton of text/data.\n *\n * It is imperative to never set this below 1 or else BAD THINGS. You have been warned.\n */\n\nexports.PACK_SPAN_THRESHOLD = 2;\n/**\n * How far to travel into a nested pointer structure during a deep copy; when this limit is exhausted the copy\n * operation will throw an error.\n */\n\nexports.POINTER_COPY_LIMIT = 32;\n/** A bitmask for looking up the double-far flag on a far pointer. */\n\nexports.POINTER_DOUBLE_FAR_MASK = 0x00000004;\n/** A bitmask for looking up the pointer type. */\n\nexports.POINTER_TYPE_MASK = 0x00000003;\n/** Used for some 64-bit conversions, equal to Math.pow(2, 32). */\n\nexports.VAL32 = 0x100000000;\n/** The maximum value allowed for depth traversal limits. */\n\nexports.MAX_DEPTH = exports.MAX_INT32;\n/** The maximum byte length for a single segment. */\n\nexports.MAX_SEGMENT_LENGTH = exports.MAX_UINT32;","var core = module.exports = {\n version: '2.6.9'\n};\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef","var store = require('./_shared')('wks');\n\nvar uid = require('./_uid');\n\nvar Symbol = require('./_global').Symbol;\n\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;","function findMaxByteStateChangeCount(messages) {\n return Object.values(messages)\n .map((m) => m.byteStateChangeCounts)\n .reduce((counts, countArr) => counts.concat(countArr), []) // flatten arrays\n .reduce((count1, count2) => (count1 > count2 ? count1 : count2), 0); // find max\n}\n\nfunction addCanMessage(\n canMessage,\n dbc,\n canStartTime,\n messages,\n prevMsgEntries,\n byteStateChangeCountsByMessage\n) {\n const {\n address, busTime, data, bus\n } = canMessage;\n const id = `${bus}:${address.toString(16)}`;\n\n if (messages[id] === undefined) messages[id] = createMessageSpec(dbc, address, id, bus);\n\n const prevMsgEntry = messages[id].entries.length > 0\n ? messages[id].entries[messages[id].entries.length - 1]\n : prevMsgEntries[id] || null;\n\n if (\n byteStateChangeCountsByMessage[id]\n && messages[id].byteStateChangeCounts.every((c) => c === 0)\n ) {\n messages[id].byteStateChangeCounts = byteStateChangeCountsByMessage[id];\n }\n\n const { msgEntry, byteStateChangeCounts } = parseMessage(\n dbc,\n busTime,\n address,\n data,\n canStartTime,\n prevMsgEntry\n );\n\n messages[id].byteStateChangeCounts = byteStateChangeCounts.map(\n (count, idx) => messages[id].byteStateChangeCounts[idx] + count\n );\n\n messages[id].entries.push(msgEntry);\n\n return msgEntry;\n}\n\nfunction createMessageSpec(dbc, address, id, bus) {\n const frame = dbc.getMessageFrame(address);\n const size = frame ? frame.size : 8;\n\n return {\n address,\n id,\n bus,\n entries: [],\n frame,\n byteColors: Array(size).fill(0),\n byteStateChangeCounts: Array(size).fill(0)\n };\n}\n\nfunction determineByteStateChangeTimes(\n hexData,\n time,\n msgSize,\n lastParsedMessage\n) {\n const byteStateChangeCounts = Array(msgSize).fill(0);\n let byteStateChangeTimes;\n\n if (!lastParsedMessage) {\n byteStateChangeTimes = Array(msgSize).fill(time);\n } else {\n // debugger;\n byteStateChangeTimes = lastParsedMessage.byteStateChangeTimes;\n\n for (let i = 0; i < byteStateChangeTimes.length; i++) {\n const currentData = hexData.substr(i * 2, 2);\n const prevData = lastParsedMessage.hexData.substr(i * 2, 2);\n\n if (currentData !== prevData) {\n byteStateChangeTimes[i] = time;\n byteStateChangeCounts[i] = 1;\n }\n }\n }\n\n return { byteStateChangeTimes, byteStateChangeCounts };\n}\n\nfunction createMessageEntry(\n dbc,\n address,\n time,\n relTime,\n data,\n byteStateChangeTimes\n) {\n return {\n signals: dbc.getSignalValues(address, data),\n address,\n data,\n time,\n relTime,\n hexData: Buffer.from(data).toString('hex'),\n byteStateChangeTimes,\n updated: Date.now()\n };\n}\n\nfunction reparseMessage(dbc, msg, lastParsedMessage) {\n const msgSpec = dbc.getMessageFrame(msg.address);\n const msgSize = msgSpec ? msgSpec.size : 8;\n\n const {\n byteStateChangeTimes,\n byteStateChangeCounts\n } = determineByteStateChangeTimes(\n msg.hexData,\n msg.relTime,\n msgSize,\n lastParsedMessage\n );\n\n const msgEntry = {\n ...msg,\n signals: dbc.getSignalValues(msg.address, msg.data),\n byteStateChangeTimes,\n updated: Date.now()\n };\n\n return { msgEntry, byteStateChangeCounts };\n}\n\nfunction parseMessage(dbc, time, address, data, timeStart, lastParsedMessage) {\n let hexData;\n if (typeof data === 'string') {\n hexData = data;\n data = Buffer.from(data, 'hex');\n } else {\n hexData = Buffer.from(data).toString('hex');\n }\n const msgSpec = dbc.getMessageFrame(address);\n const msgSize = msgSpec ? msgSpec.size : 8;\n const relTime = time - timeStart;\n\n const {\n byteStateChangeTimes,\n byteStateChangeCounts\n } = determineByteStateChangeTimes(\n hexData,\n relTime,\n msgSize,\n lastParsedMessage\n );\n const msgEntry = createMessageEntry(\n dbc,\n address,\n time,\n relTime,\n data,\n byteStateChangeTimes\n );\n\n return { msgEntry, byteStateChangeCounts };\n}\n\nconst BIG_ENDIAN_START_BITS = [];\nfor (let i = 0; i < 64; i += 8) {\n for (let j = 7; j > -1; j--) {\n BIG_ENDIAN_START_BITS.push(i + j);\n }\n}\n\nfunction bigEndianBitIndex(matrixBitIndex) {\n return BIG_ENDIAN_START_BITS.indexOf(matrixBitIndex);\n}\n\nfunction matrixBitNumber(bigEndianIndex) {\n return BIG_ENDIAN_START_BITS[bigEndianIndex];\n}\n\nfunction setMessageByteColors(message, maxByteStateChangeCount) {\n message.byteColors = message.byteStateChangeCounts\n .map((count) => (isNaN(count)\n ? 0\n : Math.min(255, 75 + 180 * (count / maxByteStateChangeCount))))\n .map((red) => `rgb(${Math.round(red)},0,0)`);\n\n return message;\n}\n\nexport default {\n bigEndianBitIndex,\n addCanMessage,\n createMessageSpec,\n matrixBitNumber,\n parseMessage,\n reparseMessage,\n findMaxByteStateChangeCount,\n setMessageByteColors,\n createMessageEntry\n};\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.patch = exports.postForm = exports.post = exports.get = undefined;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar _promise = require('babel-runtime/core-js/promise');\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar get = exports.get = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(endpoint, data) {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return ensureInit();\n\n case 2:\n return _context.abrupt('return', new _promise2.default(function (resolve, reject) {\n request.get(endpoint, {\n query: data,\n json: true\n }, _errorHandlerFn(resolve, reject));\n }));\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function get(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar post = exports.post = function () {\n var _ref2 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee2(endpoint, data) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return ensureInit();\n\n case 2:\n return _context2.abrupt('return', new _promise2.default(function (resolve, reject) {\n request.post(endpoint, {\n body: data,\n json: true\n }, _errorHandlerFn(resolve, reject));\n }));\n\n case 3:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function post(_x3, _x4) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar postForm = exports.postForm = function () {\n var _ref3 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee3(endpoint, data) {\n return _regenerator2.default.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return ensureInit();\n\n case 2:\n return _context3.abrupt('return', new _promise2.default(function (resolve, reject) {\n request.post(endpoint, {\n body: _querystringify2.default.stringify(data),\n headers: {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n }\n }, _errorHandlerFn(resolve, reject));\n }));\n\n case 3:\n case 'end':\n return _context3.stop();\n }\n }\n }, _callee3, this);\n }));\n\n return function postForm(_x5, _x6) {\n return _ref3.apply(this, arguments);\n };\n}();\n\nvar patch = exports.patch = function () {\n var _ref4 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee4(endpoint, data) {\n return _regenerator2.default.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return ensureInit();\n\n case 2:\n return _context4.abrupt('return', new _promise2.default(function (resolve, reject) {\n request.patch(endpoint, {\n body: data,\n json: true\n }, _errorHandlerFn(resolve, reject));\n }));\n\n case 3:\n case 'end':\n return _context4.stop();\n }\n }\n }, _callee4, this);\n }));\n\n return function patch(_x7, _x8) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nexports.configure = configure;\n\nvar _instance = require('config-request/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _querystringify = require('querystringify');\n\nvar _querystringify2 = _interopRequireDefault(_querystringify);\n\nvar _errorHandler = require('./errorHandler');\n\nvar _errorHandler2 = _interopRequireDefault(_errorHandler);\n\nvar _config = require('./config');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar request = (0, _instance2.default)();\nvar _errorHandlerFn = _errorHandler2.default;\nvar initPromise;\n\nfunction ensureInit() {\n if (!initPromise) {\n initPromise = configure();\n }\n\n return initPromise;\n}\n\nfunction configure(accessToken, errorHandler) {\n var config = {\n baseUrl: _config.COMMA_URL_ROOT,\n jwt: false,\n parse: null\n };\n\n if (accessToken) {\n config.token = 'JWT ' + accessToken;\n }\n\n if (errorHandler) {\n _errorHandlerFn = errorHandler;\n } else {\n _errorHandlerFn = _errorHandler2.default;\n }\n\n request.configure(config);\n initPromise = _promise2.default.resolve();\n return initPromise;\n}","module.exports = require(\"regenerator-runtime\");","\"use strict\";\n\nexports.__esModule = true;\n\nvar _promise = require(\"../core-js/promise\");\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (fn) {\n return function () {\n var gen = fn.apply(this, arguments);\n return new _promise2.default(function (resolve, reject) {\n function step(key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n return _promise2.default.resolve(value).then(function (value) {\n step(\"next\", value);\n }, function (err) {\n step(\"throw\", err);\n });\n }\n }\n\n return step(\"next\");\n });\n };\n};","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n };\n}","var isObject = require('./_is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/*</replacement>*/\n\n\nmodule.exports = Duplex;\n/*<replacement>*/\n\nvar util = require('core-util-is');\n\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n if (options && options.readable === false) this.readable = false;\n if (options && options.writable === false) this.writable = false;\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n pna.nextTick(cb, err);\n};","module.exports = require(\"regenerator-runtime\");\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar _ = require(\"../util\");\n\nvar trace = debug_1.default('capnp:object-size');\ntrace('load');\n/**\n * A simple object that describes the size of a struct.\n *\n * @export\n * @class ObjectSize\n */\n\nvar ObjectSize =\n/** @class */\nfunction () {\n function ObjectSize(dataByteLength, pointerCount) {\n this.dataByteLength = dataByteLength;\n this.pointerLength = pointerCount;\n }\n\n ObjectSize.prototype.toString = function () {\n return _.format('ObjectSize_dw:%d,pc:%d', getDataWordLength(this), this.pointerLength);\n };\n\n return ObjectSize;\n}();\n\nexports.ObjectSize = ObjectSize;\n\nfunction getByteLength(o) {\n return o.dataByteLength + o.pointerLength * 8;\n}\n\nexports.getByteLength = getByteLength;\n\nfunction getDataWordLength(o) {\n return o.dataByteLength / 8;\n}\n\nexports.getDataWordLength = getDataWordLength;\n\nfunction getWordLength(o) {\n return o.dataByteLength / 8 + o.pointerLength;\n}\n\nexports.getWordLength = getWordLength;\n\nfunction padToWord(o) {\n return new ObjectSize(_.padToWord(o.dataByteLength), o.pointerLength);\n}\n\nexports.padToWord = padToWord;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar PointerType;\n\n(function (PointerType) {\n PointerType[PointerType[\"STRUCT\"] = 0] = \"STRUCT\";\n PointerType[PointerType[\"LIST\"] = 1] = \"LIST\";\n PointerType[PointerType[\"FAR\"] = 2] = \"FAR\";\n PointerType[PointerType[\"OTHER\"] = 3] = \"OTHER\";\n})(PointerType = exports.PointerType || (exports.PointerType = {}));","module.exports = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n var target = {};\n\n for (var i = 0; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}","var global = require('./_global');\n\nvar core = require('./_core');\n\nvar ctx = require('./_ctx');\n\nvar hide = require('./_hide');\n\nvar has = require('./_has');\n\nvar PROTOTYPE = 'prototype';\n\nvar $export = function $export(type, name, source) {\n var IS_FORCED = type & $export.F;\n var IS_GLOBAL = type & $export.G;\n var IS_STATIC = type & $export.S;\n var IS_PROTO = type & $export.P;\n var IS_BIND = type & $export.B;\n var IS_WRAP = type & $export.W;\n var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});\n var expProto = exports[PROTOTYPE];\n var target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE];\n var key, own, out;\n if (IS_GLOBAL) source = name;\n\n for (key in source) {\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if (own && has(exports, key)) continue; // export native or passed\n\n out = own ? target[key] : source[key]; // prevent global pollution for namespaces\n\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global) // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? function (C) {\n var F = function F(a, b, c) {\n if (this instanceof C) {\n switch (arguments.length) {\n case 0:\n return new C();\n\n case 1:\n return new C(a);\n\n case 2:\n return new C(a, b);\n }\n\n return new C(a, b, c);\n }\n\n return C.apply(this, arguments);\n };\n\n F[PROTOTYPE] = C[PROTOTYPE];\n return F; // make static versions for prototype methods\n }(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n\n if (IS_PROTO) {\n (exports.virtual || (exports.virtual = {}))[key] = out; // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n\n if (type & $export.R && expProto && !expProto[key]) hide(expProto, key, out);\n }\n }\n}; // type bitmap\n\n\n$export.F = 1; // forced\n\n$export.G = 2; // global\n\n$export.S = 4; // static\n\n$export.P = 8; // proto\n\n$export.B = 16; // bind\n\n$export.W = 32; // wrap\n\n$export.U = 64; // safe\n\n$export.R = 128; // real proto method for `library`\n\nmodule.exports = $export;","var dP = require('./_object-dp');\n\nvar createDesc = require('./_property-desc');\n\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};","module.exports = {};","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}","import Frame from './frame';\nimport Signal from './signal';\n\nexport const wheelSpeeds = {\n FrontLeftWheel: shortSignal({\n index: 0,\n factor: 0.001\n }),\n FrontRightWheel: shortSignal({\n index: 1,\n factor: 0.001\n }),\n RearLeftWheel: shortSignal({\n index: 2,\n factor: 0.001\n }),\n RearRightWheel: shortSignal({\n index: 3,\n factor: 0.001\n })\n};\n\nexport const ego = {\n VEgo: shortSignal({\n index: 0,\n factor: 0.001\n }),\n AEgo: shortSignal({\n index: 1,\n factor: 0.001\n }),\n VEgoRaw: shortSignal({\n index: 2,\n factor: 0.001\n }),\n YawRate: shortSignal({\n index: 3,\n factor: 0.001\n })\n};\n\nexport const controls = {\n SteeringAngle: longSignal({\n index: 0,\n factor: 0.001\n }),\n Brake: shortSignal({\n index: 2,\n factor: 0.001\n }),\n Gas: shortSignal({\n index: 3,\n factor: 0.001\n })\n};\n\nexport const flags = {\n LeftBlinker: boolSignal({\n index: 0\n }),\n RightBlinker: boolSignal({\n index: 1\n }),\n GenericToggle: boolSignal({\n index: 2\n }),\n DoorOpen: boolSignal({\n index: 3\n }),\n SeatbeltUnlatched: boolSignal({\n index: 4\n }),\n GasPressed: boolSignal({\n index: 5\n }),\n BrakeLights: boolSignal({\n index: 6\n }),\n SteeringPressed: boolSignal({\n index: 7\n }),\n Standstill: boolSignal({\n index: 8\n }),\n 'CruiseState.Enabled': boolSignal({\n index: 9\n }),\n 'CruiseState.Available': boolSignal({\n index: 10\n }),\n 'CruiseState.Standstill': boolSignal({\n index: 11\n }),\n GearShifter: {\n startBit: 15,\n size: 4,\n unsigned: true\n },\n 'CruiseState.Speed': charSignal({\n index: 2\n })\n};\n\nexport const ubloxGnss = {\n RcvTow: longSignal({\n index: 0\n }),\n GpsWeek: shortSignal({\n index: 2\n }),\n LeapSeconds: {\n startBit: 55,\n size: 8\n },\n NumMeas: {\n startBit: 63,\n size: 8\n }\n};\n\nexport const health = {\n Voltage: shortSignal({\n index: 0\n }),\n Current: charSignal({\n index: 2\n }),\n Started: boolSignal({\n index: 24\n }),\n ControlsAllowed: boolSignal({\n index: 25\n }),\n GasInterceptorDetected: boolSignal({\n index: 26\n }),\n StartedSignalDetected: boolSignal({\n index: 27\n })\n};\n\nexport const thermalCPU = {\n Cpu0: shortSignal({\n index: 0,\n unsigned: true\n }),\n Cpu1: shortSignal({\n index: 1,\n unsigned: true\n }),\n Cpu2: shortSignal({\n index: 2,\n unsigned: true\n }),\n Cpu3: shortSignal({\n index: 3,\n unsigned: true\n })\n};\n\nexport const thermalData = {\n Mem: shortSignal({\n index: 0,\n unsigned: true\n }),\n Gpu: shortSignal({\n index: 1,\n unsigned: true\n }),\n FanSpeed: shortSignal({\n index: 2,\n unsigned: true\n }),\n BatteryPercent: charSignal({\n index: 6,\n unsigned: true\n }),\n UsbOnline: boolSignal({\n index: 56\n }),\n Started: boolSignal({\n index: 57\n })\n};\n\nexport const thermalFreeSpace = {\n FreeSpace: longSignal({\n index: 0,\n unsigned: true,\n factor: 0.000000001\n })\n};\n\nexport const signalMap = {\n 'CarState:WheelSpeeds': wheelSpeeds,\n 'CarState:Ego': ego,\n 'CarState:Controls': controls,\n 'CarState:Flags': flags,\n 'UbloxGnss:MeasurementReport': ubloxGnss,\n 'Health:Data': health,\n 'Thermal:CPU': thermalCPU,\n 'Thermal:Data': thermalData,\n 'Thermal:FreeSpace': thermalFreeSpace\n};\n\nconst ADDRESS_LIST = [];\n\nObject.keys(signalMap).forEach((name) => {\n Object.keys(signalMap[name]).forEach((signal) => {\n signalMap[name][signal] = createSignalEntry({\n name: signal,\n ...signalMap[name][signal]\n });\n });\n addressForName(name);\n});\n\nfunction createSignalEntry(options) {\n return new Signal({\n name: options.name,\n startBit: options.startBit,\n size: options.size,\n isLittleEndian: false,\n isSigned: !options.unsigned,\n factor: options.factor || 1,\n offset: options.offset || 0,\n unit: options.unit || ''\n });\n}\n\nfunction longSignal(options) {\n return {\n ...options,\n size: 32,\n startBit: options.index * 32 + 7\n };\n}\n\nfunction shortSignal(options) {\n return {\n ...options,\n size: 16,\n startBit: options.index * 16 + 7\n };\n}\n\nfunction charSignal(options) {\n return {\n ...options,\n size: 8,\n startBit: options.index * 8 + 7\n };\n}\n\nfunction boolSignal(options) {\n return {\n ...options,\n size: 1,\n startBit: options.index,\n unsigned: true\n };\n}\n\nexport function addressForName(name) {\n const i = ADDRESS_LIST.indexOf(name);\n if (i === -1) {\n ADDRESS_LIST.push(name);\n return ADDRESS_LIST.indexOf(name) + 0x1000;\n }\n return i + 0x1000;\n}\n\nexport function nameForAddress(address) {\n if (address >= 0x1000) {\n return ADDRESS_LIST[address - 0x1000];\n }\n return null;\n}\n\nexport function isLogAddress(address) {\n return !!nameForAddress(address);\n}\n\nexport function frameForAddress(address) {\n const name = nameForAddress(address);\n return new Frame({\n id: name,\n name,\n size: 8,\n signals: signalMap[name]\n });\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n\n return objectToString(arg) === '[object Array]';\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return objectToString(e) === '[object Error]' || e instanceof Error;\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar serialization_1 = require(\"./serialization\");\n\nexports.ListElementSize = serialization_1.ListElementSize;\nexports.Message = serialization_1.Message;\nexports.ObjectSize = serialization_1.ObjectSize;\nexports.AnyPointerList = serialization_1.AnyPointerList;\nexports.BoolList = serialization_1.BoolList;\nexports.CompositeList = serialization_1.CompositeList;\nexports.Data = serialization_1.Data;\nexports.DataList = serialization_1.DataList;\nexports.Float32List = serialization_1.Float32List;\nexports.Float64List = serialization_1.Float64List;\nexports.Int16List = serialization_1.Int16List;\nexports.Int32List = serialization_1.Int32List;\nexports.Int64List = serialization_1.Int64List;\nexports.Int8List = serialization_1.Int8List;\nexports.Interface = serialization_1.Interface;\nexports.InterfaceList = serialization_1.InterfaceList;\nexports.List = serialization_1.List;\nexports.Orphan = serialization_1.Orphan;\nexports.PointerList = serialization_1.PointerList;\nexports.PointerType = serialization_1.PointerType;\nexports.Pointer = serialization_1.Pointer;\nexports.Struct = serialization_1.Struct;\nexports.Text = serialization_1.Text;\nexports.TextList = serialization_1.TextList;\nexports.Uint16List = serialization_1.Uint16List;\nexports.Uint32List = serialization_1.Uint32List;\nexports.Uint64List = serialization_1.Uint64List;\nexports.Uint8List = serialization_1.Uint8List;\nexports.VoidList = serialization_1.VoidList;\nexports.Void = serialization_1.Void;\nexports.getBitMask = serialization_1.getBitMask;\nexports.getFloat32Mask = serialization_1.getFloat32Mask;\nexports.getFloat64Mask = serialization_1.getFloat64Mask;\nexports.getInt16Mask = serialization_1.getInt16Mask;\nexports.getInt32Mask = serialization_1.getInt32Mask;\nexports.getInt64Mask = serialization_1.getInt64Mask;\nexports.getInt8Mask = serialization_1.getInt8Mask;\nexports.getUint16Mask = serialization_1.getUint16Mask;\nexports.getUint32Mask = serialization_1.getUint32Mask;\nexports.getUint64Mask = serialization_1.getUint64Mask;\nexports.getUint8Mask = serialization_1.getUint8Mask;\n\nvar types_1 = require(\"./types\");\n\nexports.Int64 = types_1.Int64;\nexports.Uint64 = types_1.Uint64;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nfunction PointerList(PointerClass) {\n return _a =\n /** @class */\n function (_super) {\n tslib_1.__extends(class_1, _super);\n\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n class_1.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return new PointerClass(c.segment, c.byteOffset + index * 8, this._capnp.depthLimit - 1);\n };\n\n class_1.prototype.set = function (index, value) {\n pointer_1.copyFrom(value, this.get(index));\n };\n\n class_1.prototype.toString = function () {\n return \"Pointer_\" + _super.prototype.toString.call(this) + \",cls:\" + PointerClass.toString();\n };\n\n return class_1;\n }(list_1.List), _a._capnp = {\n displayName: \"List<\" + PointerClass._capnp.displayName + \">\",\n size: list_element_size_1.ListElementSize.POINTER\n }, _a;\n\n var _a;\n}\n\nexports.PointerList = PointerList;","// optional / simple context binding\nvar aFunction = require('./_a-function');\n\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n\n switch (length) {\n case 1:\n return function (a) {\n return fn.call(that, a);\n };\n\n case 2:\n return function (a, b) {\n return fn.call(that, a, b);\n };\n\n case 3:\n return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n\n return function ()\n /* ...args */\n {\n return fn.apply(that, arguments);\n };\n};","var anObject = require('./_an-object');\n\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\n\nvar toPrimitive = require('./_to-primitive');\n\nvar dP = Object.defineProperty;\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) {\n /* empty */\n }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});","export default class Frame {\n constructor({\n name,\n id = 0,\n size = 0,\n transmitters = [],\n extended = 0,\n comment = null,\n signals = {}\n }) {\n Object.assign(this, {\n name,\n id,\n size,\n transmitters,\n extended,\n comment,\n signals\n });\n }\n\n nextNewTransmitterName() {\n let txNum = 1;\n let txName;\n do {\n txName = `NEW_TRANSMITTER_${txNum}`;\n txNum++;\n } while (this.transmitters.indexOf(txName) !== -1);\n\n return txName;\n }\n\n addTransmitter() {\n const txName = this.nextNewTransmitterName();\n this.transmitters.push(txName);\n return txName;\n }\n\n header() {\n return (\n `BO_ ${this.id} ${this.name}: ${this.size} `\n + `${this.transmitters[0] || 'XXX'}`\n );\n }\n\n text() {\n const signals = Object.values(this.signals)\n .map((signal) => ` ${signal.text()}`) // indent\n .join('\\n');\n\n if (signals.length > 0) {\n return `${this.header()}\\n${signals}`;\n }\n return this.header();\n }\n\n copy() {\n const copy = Object.assign(Object.create(this), this);\n\n return copy;\n }\n}\n","// Vendored from https://github.com/rapid7/le_js, which is broken with webpack.\n/* eslint-disable */\n\nif (typeof window === \"undefined\") {\n // eslint-disable-line no-use-before-define\n var window = self;\n}\nvar _indexOf = function(array, obj) {\n for (var i = 0; i < array.length; i++) {\n if (obj === array[i]) {\n return i;\n }\n }\n return -1;\n};\n\n// Obtain a browser-specific XHR object\nvar _getAjaxObject = function() {\n if (typeof XDomainRequest !== \"undefined\") {\n // We're using IE8/9\n return new XDomainRequest();\n }\n return new XMLHttpRequest();\n};\n\n/**\n * A single log event stream.\n * @constructor\n * @param {Object} options\n */\nfunction LogStream(options) {\n /**\n * @const\n * @type {string} */\n var _traceCode = options.trace\n ? (Math.random() + Math.PI).toString(36).substring(2, 10)\n : null;\n /** @type {string} */\n var _pageInfo = options.page_info;\n /** @type {string} */\n var _token = options.token;\n /** @type {boolean} */\n var _print = options.print;\n /** @type {boolean} */\n var _noFormat = options.no_format;\n /** @type {boolean} */\n var _SSL = (function() {\n if (typeof XDomainRequest === \"undefined\") {\n return options.ssl;\n }\n // If we're relying on XDomainRequest, we\n // must adhere to the page's encryption scheme.\n return window.location.protocol === \"https:\" ? true : false;\n })();\n /** @type {string} */\n var _endpoint;\n if (window.LEENDPOINT) {\n _endpoint = window.LEENDPOINT;\n } else if (_noFormat) {\n _endpoint = \"webhook.logentries.com/noformat\";\n } else {\n _endpoint = \"js.logentries.com/v1\";\n }\n _endpoint = (_SSL ? \"https://\" : \"http://\") + _endpoint + \"/logs/\" + _token;\n\n /**\n * Flag to prevent further invocations on network err\n ** @type {boolean} */\n var _shouldCall = true;\n /** @type {Array.<string>} */\n var _backlog = [];\n /** @type {boolean} */\n var _active = false;\n /** @type {boolean} */\n var _sentPageInfo = false;\n\n var _apiCall = function(token, data) {\n _active = true;\n\n var request = _getAjaxObject();\n\n if (_shouldCall) {\n if (request.constructor === XMLHttpRequest) {\n // Currently we don't support fine-grained error\n // handling in older versions of IE\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n // Handle any errors\n if (request.status >= 400) {\n console.error(\"Couldn't submit events.\");\n if (request.status === 410) {\n // This API version has been phased out\n console.warn(\"This version of le_js is no longer supported!\");\n }\n } else {\n if (request.status === 301) {\n // Server issued a deprecation warning\n console.warn(\n \"This version of le_js is deprecated! Consider upgrading.\"\n );\n }\n if (_backlog.length > 0) {\n // Submit the next event in the backlog\n _apiCall(token, _backlog.shift());\n } else {\n _active = false;\n }\n }\n }\n };\n } else {\n request.onload = function() {\n if (_backlog.length > 0) {\n // Submit the next event in the backlog\n _apiCall(token, _backlog.shift());\n } else {\n _active = false;\n }\n };\n }\n\n request.open(\"POST\", _endpoint, true);\n if (request.constructor === XMLHttpRequest) {\n request.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n request.setRequestHeader(\"Content-type\", \"application/json\");\n }\n\n if (request.overrideMimeType) {\n request.overrideMimeType(\"text\");\n }\n\n request.send(data);\n }\n };\n\n var _getEvent = function() {\n var raw = null;\n var args = Array.prototype.slice.call(arguments);\n if (args.length === 0) {\n throw new Error(\"No arguments!\");\n } else if (args.length === 1) {\n raw = args[0];\n } else {\n // Handle a variadic overload,\n // e.g. _rawLog(\"some text \", x, \" ...\", 1);\n raw = args;\n }\n return raw;\n };\n\n var _agentInfo = function() {\n var nav = window.navigator || { doNotTrack: undefined };\n var screen = window.screen || {};\n var location = window.location || {};\n\n return {\n url: location.pathname,\n referrer: document.referrer,\n screen: {\n width: screen.width,\n height: screen.height\n },\n window: {\n width: window.innerWidth,\n height: window.innerHeight\n },\n browser: {\n name: nav.appName,\n version: nav.appVersion,\n cookie_enabled: nav.cookieEnabled,\n do_not_track: nav.doNotTrack\n },\n platform: nav.platform\n };\n };\n\n // Single arg stops the compiler arity warning\n var _rawLog = function(msg) {\n var event = _getEvent.apply(this, arguments);\n\n var data = { event: event };\n\n // Add agent info if required\n if (_pageInfo !== \"never\") {\n if (!_sentPageInfo || _pageInfo === \"per-entry\") {\n _sentPageInfo = true;\n if (\n typeof event.screen === \"undefined\" &&\n typeof event.browser === \"undefined\"\n )\n _rawLog(_agentInfo())\n .level(\"PAGE\")\n .send();\n }\n }\n\n if (_traceCode) {\n data.trace = _traceCode;\n }\n\n return {\n level: function(l) {\n // Don't log PAGE events to console\n // PAGE events are generated for the agentInfo function\n if (_print && typeof console !== \"undefined\" && l !== \"PAGE\") {\n var serialized = null;\n if (typeof XDomainRequest !== \"undefined\") {\n // We're using IE8/9\n serialized = data.trace + \" \" + data.event;\n }\n try {\n console[l.toLowerCase()].call(console, serialized || data);\n } catch (ex) {\n // IE compat fix\n console.log(serialized || data);\n }\n }\n data.level = l;\n\n return {\n send: function() {\n var cache = [];\n var serialized = JSON.stringify(data, function(key, value) {\n if (typeof value === \"undefined\") {\n return \"undefined\";\n } else if (typeof value === \"object\" && value !== null) {\n if (_indexOf(cache, value) !== -1) {\n // We've seen this object before;\n // return a placeholder instead to prevent\n // cycles\n return \"<?>\";\n }\n cache.push(value);\n }\n return value;\n });\n\n if (_active) {\n _backlog.push(serialized);\n } else {\n _apiCall(_token, serialized);\n }\n }\n };\n }\n };\n };\n\n if (options.catchall) {\n var oldHandler = window.onerror;\n var newHandler = function(msg, url, line) {\n _rawLog({ error: msg, line: line, location: url })\n .level(\"ERROR\")\n .send();\n if (oldHandler) {\n return oldHandler(msg, url, line);\n } else {\n return false;\n }\n };\n window.onerror = newHandler;\n }\n\n /** @expose */\n this.log = _rawLog;\n}\n\n/**\n * A single log object\n * @constructor\n * @param {Object} options\n */\nfunction Logger(options) {\n var logger;\n\n // Default values\n var dict = {\n ssl: true,\n catchall: false,\n trace: true,\n page_info: \"never\",\n print: false,\n endpoint: null,\n token: null\n };\n\n if (typeof options === \"object\") for (var k in options) dict[k] = options[k];\n else throw new Error(\"Invalid parameters for createLogStream()\");\n\n if (dict.token === null) {\n throw new Error(\"Token not present.\");\n } else {\n logger = new LogStream(dict);\n }\n\n var _log = function(msg) {\n if (logger) {\n return logger.log.apply(this, arguments);\n } else throw new Error(\"You must call LE.init(...) first.\");\n };\n\n // The public interface\n return {\n log: function() {\n _log\n .apply(this, arguments)\n .level(\"LOG\")\n .send();\n },\n warn: function() {\n _log\n .apply(this, arguments)\n .level(\"WARN\")\n .send();\n },\n error: function() {\n _log\n .apply(this, arguments)\n .level(\"ERROR\")\n .send();\n },\n info: function() {\n _log\n .apply(this, arguments)\n .level(\"INFO\")\n .send();\n }\n };\n}\n\n// Array of Logger elements\nvar loggers = {};\n\nvar _getLogger = function(name) {\n if (!loggers.hasOwnProperty(name))\n throw new Error(\"Invalid name for logStream\");\n\n return loggers[name];\n};\n\nvar _createLogStream = function(options) {\n if (typeof options.name !== \"string\") throw new Error(\"Name not present.\");\n else if (loggers.hasOwnProperty(options.name))\n throw new Error(\"A logger with that name already exists!\");\n loggers[options.name] = new Logger(options);\n\n return true;\n};\n\nvar _deprecatedInit = function(options) {\n var dict = {\n name: \"default\"\n };\n\n if (typeof options === \"object\") for (var k in options) dict[k] = options[k];\n else if (typeof options === \"string\") dict.token = options;\n else throw new Error(\"Invalid parameters for init()\");\n\n return _createLogStream(dict);\n};\n\nvar _destroyLogStream = function(name) {\n if (typeof name === \"undefined\") {\n name = \"default\";\n }\n\n delete loggers[name];\n};\n\n// The public interface\nexport default {\n init: _deprecatedInit,\n createLogStream: _createLogStream,\n to: _getLogger,\n destroy: _destroyLogStream,\n log: function() {\n for (var k in loggers) loggers[k].log.apply(this, arguments);\n },\n warn: function() {\n for (var k in loggers) loggers[k].warn.apply(this, arguments);\n },\n error: function() {\n for (var k in loggers) loggers[k].error.apply(this, arguments);\n },\n info: function() {\n for (var k in loggers) loggers[k].info.apply(this, arguments);\n }\n};\n","'use strict';\n\nif (typeof process === 'undefined' || !process.version || process.version.indexOf('v0.') === 0 || process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = {\n nextTick: nextTick\n };\n} else {\n module.exports = process;\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n\n var len = arguments.length;\n var args, i;\n\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n\n default:\n args = new Array(len - 1);\n i = 0;\n\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n\n return descriptors;\n};\n\nvar formatRegExp = /%[sdj%]/g;\n\nexports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n}; // Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\n\n\nexports.deprecate = function (fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n } // Allow for deprecating things in the process of starting up.\n\n\n if (typeof process === 'undefined') {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\nvar debugs = {};\nvar debugEnviron;\n\nexports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n};\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n/* legacy: obj, showHidden, depth, colors*/\n\n\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\n\nexports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\ninspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n}; // Don't use 'blue' not visible on cmd.exe\n\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\nfunction arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n}\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n}\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n}\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n}\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n} // NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\n\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\n\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\n\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\n\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\n\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\n\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\n\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\n\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n}\n\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\n\nexports.isPrimitive = isPrimitive;\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n} // log is just a thin wrapper to console.log that prepends a timestamp\n\n\nexports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\nexports.inherits = require('inherits');\n\nexports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function') throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn,\n enumerable: false,\n writable: false,\n configurable: true\n });\n return Object.defineProperties(fn, getOwnPropertyDescriptors(original));\n};\n\nexports.promisify.custom = kCustomPromisifiedSymbol;\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n } // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n\n\n function callbackified() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n\n var self = this;\n\n var cb = function cb() {\n return maybeCb.apply(self, arguments);\n }; // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n\n\n original.apply(this, args).then(function (ret) {\n process.nextTick(cb, null, ret);\n }, function (rej) {\n process.nextTick(callbackifyOnRejected, rej, cb);\n });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified, getOwnPropertyDescriptors(original));\n return callbackified;\n}\n\nexports.callbackify = callbackify;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar ArenaKind;\n\n(function (ArenaKind) {\n ArenaKind[ArenaKind[\"SINGLE_SEGMENT\"] = 0] = \"SINGLE_SEGMENT\";\n ArenaKind[ArenaKind[\"MULTI_SEGMENT\"] = 1] = \"MULTI_SEGMENT\";\n})(ArenaKind = exports.ArenaKind || (exports.ArenaKind = {}));","'use strict';\n\nvar TYPED_OK = typeof Uint8Array !== 'undefined' && typeof Uint16Array !== 'undefined' && typeof Int32Array !== 'undefined';\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nexports.assign = function (obj\n/*from1, from2, from3, ...*/\n) {\n var sources = Array.prototype.slice.call(arguments, 1);\n\n while (sources.length) {\n var source = sources.shift();\n\n if (!source) {\n continue;\n }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n}; // reduce buffer size, avoiding mem copy\n\n\nexports.shrinkBuf = function (buf, size) {\n if (buf.length === size) {\n return buf;\n }\n\n if (buf.subarray) {\n return buf.subarray(0, size);\n }\n\n buf.length = size;\n return buf;\n};\n\nvar fnTyped = {\n arraySet: function arraySet(dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n } // Fallback to ordinary array\n\n\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function flattenChunks(chunks) {\n var i, l, len, pos, chunk, result; // calculate data length\n\n len = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n } // join chunks\n\n\n result = new Uint8Array(len);\n pos = 0;\n\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n }\n};\nvar fnUntyped = {\n arraySet: function arraySet(dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function flattenChunks(chunks) {\n return [].concat.apply([], chunks);\n }\n}; // Enable/Disable typed arrays use, for testing\n//\n\nexports.setTyped = function (on) {\n if (on) {\n exports.Buf8 = Uint8Array;\n exports.Buf16 = Uint16Array;\n exports.Buf32 = Int32Array;\n exports.assign(exports, fnTyped);\n } else {\n exports.Buf8 = Array;\n exports.Buf16 = Array;\n exports.Buf32 = Array;\n exports.assign(exports, fnUntyped);\n }\n};\n\nexports.setTyped(TYPED_OK);","module.exports = {\n \"default\": require(\"core-js/library/fn/promise\"),\n __esModule: true\n};","'use strict';\n\nvar $at = require('./_string-at')(true); // 21.1.3.27 String.prototype[@@iterator]()\n\n\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n\n this._i = 0; // next index\n // 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return {\n value: undefined,\n done: true\n };\n point = $at(O, index);\n this._i += point.length;\n return {\n value: point,\n done: false\n };\n});","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;","'use strict';\n/* globals\n\tAtomics,\n\tSharedArrayBuffer,\n*/\n\nvar undefined; // eslint-disable-line no-shadow-restricted-names\n\nvar ThrowTypeError = Object.getOwnPropertyDescriptor ? function () {\n return Object.getOwnPropertyDescriptor(arguments, 'callee').get;\n}() : function () {\n throw new TypeError();\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol';\n\nvar getProto = Object.getPrototypeOf || function (x) {\n return x.__proto__;\n}; // eslint-disable-line no-proto\n\n\nvar generator; // = function * () {};\n\nvar generatorFunction = generator ? getProto(generator) : undefined;\nvar asyncFn; // async function() {};\n\nvar asyncFunction = asyncFn ? asyncFn.constructor : undefined;\nvar asyncGen; // async function * () {};\n\nvar asyncGenFunction = asyncGen ? getProto(asyncGen) : undefined;\nvar asyncGenIterator = asyncGen ? asyncGen() : undefined;\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\nvar INTRINSICS = {\n '$ %Array%': Array,\n '$ %ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n '$ %ArrayBufferPrototype%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer.prototype,\n '$ %ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n '$ %ArrayPrototype%': Array.prototype,\n '$ %ArrayProto_entries%': Array.prototype.entries,\n '$ %ArrayProto_forEach%': Array.prototype.forEach,\n '$ %ArrayProto_keys%': Array.prototype.keys,\n '$ %ArrayProto_values%': Array.prototype.values,\n '$ %AsyncFromSyncIteratorPrototype%': undefined,\n '$ %AsyncFunction%': asyncFunction,\n '$ %AsyncFunctionPrototype%': asyncFunction ? asyncFunction.prototype : undefined,\n '$ %AsyncGenerator%': asyncGen ? getProto(asyncGenIterator) : undefined,\n '$ %AsyncGeneratorFunction%': asyncGenFunction,\n '$ %AsyncGeneratorPrototype%': asyncGenFunction ? asyncGenFunction.prototype : undefined,\n '$ %AsyncIteratorPrototype%': asyncGenIterator && hasSymbols && Symbol.asyncIterator ? asyncGenIterator[Symbol.asyncIterator]() : undefined,\n '$ %Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n '$ %Boolean%': Boolean,\n '$ %BooleanPrototype%': Boolean.prototype,\n '$ %DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n '$ %DataViewPrototype%': typeof DataView === 'undefined' ? undefined : DataView.prototype,\n '$ %Date%': Date,\n '$ %DatePrototype%': Date.prototype,\n '$ %decodeURI%': decodeURI,\n '$ %decodeURIComponent%': decodeURIComponent,\n '$ %encodeURI%': encodeURI,\n '$ %encodeURIComponent%': encodeURIComponent,\n '$ %Error%': Error,\n '$ %ErrorPrototype%': Error.prototype,\n '$ %eval%': eval,\n // eslint-disable-line no-eval\n '$ %EvalError%': EvalError,\n '$ %EvalErrorPrototype%': EvalError.prototype,\n '$ %Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n '$ %Float32ArrayPrototype%': typeof Float32Array === 'undefined' ? undefined : Float32Array.prototype,\n '$ %Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n '$ %Float64ArrayPrototype%': typeof Float64Array === 'undefined' ? undefined : Float64Array.prototype,\n '$ %Function%': Function,\n '$ %FunctionPrototype%': Function.prototype,\n '$ %Generator%': generator ? getProto(generator()) : undefined,\n '$ %GeneratorFunction%': generatorFunction,\n '$ %GeneratorPrototype%': generatorFunction ? generatorFunction.prototype : undefined,\n '$ %Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n '$ %Int8ArrayPrototype%': typeof Int8Array === 'undefined' ? undefined : Int8Array.prototype,\n '$ %Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n '$ %Int16ArrayPrototype%': typeof Int16Array === 'undefined' ? undefined : Int8Array.prototype,\n '$ %Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n '$ %Int32ArrayPrototype%': typeof Int32Array === 'undefined' ? undefined : Int32Array.prototype,\n '$ %isFinite%': isFinite,\n '$ %isNaN%': isNaN,\n '$ %IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n '$ %JSON%': JSON,\n '$ %JSONParse%': JSON.parse,\n '$ %Map%': typeof Map === 'undefined' ? undefined : Map,\n '$ %MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n '$ %MapPrototype%': typeof Map === 'undefined' ? undefined : Map.prototype,\n '$ %Math%': Math,\n '$ %Number%': Number,\n '$ %NumberPrototype%': Number.prototype,\n '$ %Object%': Object,\n '$ %ObjectPrototype%': Object.prototype,\n '$ %ObjProto_toString%': Object.prototype.toString,\n '$ %ObjProto_valueOf%': Object.prototype.valueOf,\n '$ %parseFloat%': parseFloat,\n '$ %parseInt%': parseInt,\n '$ %Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n '$ %PromisePrototype%': typeof Promise === 'undefined' ? undefined : Promise.prototype,\n '$ %PromiseProto_then%': typeof Promise === 'undefined' ? undefined : Promise.prototype.then,\n '$ %Promise_all%': typeof Promise === 'undefined' ? undefined : Promise.all,\n '$ %Promise_reject%': typeof Promise === 'undefined' ? undefined : Promise.reject,\n '$ %Promise_resolve%': typeof Promise === 'undefined' ? undefined : Promise.resolve,\n '$ %Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n '$ %RangeError%': RangeError,\n '$ %RangeErrorPrototype%': RangeError.prototype,\n '$ %ReferenceError%': ReferenceError,\n '$ %ReferenceErrorPrototype%': ReferenceError.prototype,\n '$ %Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n '$ %RegExp%': RegExp,\n '$ %RegExpPrototype%': RegExp.prototype,\n '$ %Set%': typeof Set === 'undefined' ? undefined : Set,\n '$ %SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n '$ %SetPrototype%': typeof Set === 'undefined' ? undefined : Set.prototype,\n '$ %SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n '$ %SharedArrayBufferPrototype%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer.prototype,\n '$ %String%': String,\n '$ %StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n '$ %StringPrototype%': String.prototype,\n '$ %Symbol%': hasSymbols ? Symbol : undefined,\n '$ %SymbolPrototype%': hasSymbols ? Symbol.prototype : undefined,\n '$ %SyntaxError%': SyntaxError,\n '$ %SyntaxErrorPrototype%': SyntaxError.prototype,\n '$ %ThrowTypeError%': ThrowTypeError,\n '$ %TypedArray%': TypedArray,\n '$ %TypedArrayPrototype%': TypedArray ? TypedArray.prototype : undefined,\n '$ %TypeError%': TypeError,\n '$ %TypeErrorPrototype%': TypeError.prototype,\n '$ %Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n '$ %Uint8ArrayPrototype%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array.prototype,\n '$ %Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n '$ %Uint8ClampedArrayPrototype%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray.prototype,\n '$ %Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n '$ %Uint16ArrayPrototype%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array.prototype,\n '$ %Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n '$ %Uint32ArrayPrototype%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array.prototype,\n '$ %URIError%': URIError,\n '$ %URIErrorPrototype%': URIError.prototype,\n '$ %WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n '$ %WeakMapPrototype%': typeof WeakMap === 'undefined' ? undefined : WeakMap.prototype,\n '$ %WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n '$ %WeakSetPrototype%': typeof WeakSet === 'undefined' ? undefined : WeakSet.prototype\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n if (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n throw new TypeError('\"allowMissing\" argument must be a boolean');\n }\n\n var key = '$ ' + name;\n\n if (!(key in INTRINSICS)) {\n throw new SyntaxError('intrinsic ' + name + ' does not exist!');\n } // istanbul ignore if // hopefully this is impossible to test :-)\n\n\n if (typeof INTRINSICS[key] === 'undefined' && !allowMissing) {\n throw new TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n }\n\n return INTRINSICS[key];\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nexports.default = function (resolve, reject) {\n return handle;\n\n function handle(err, data, response) {\n if (err) {\n if (err.statusCode === 0) {\n err = new Error('There was an unexpected server error, please try again later.');\n }\n\n return reject(err);\n }\n\n resolve(data);\n }\n};","import randomcolor from 'randomcolor';\nimport DbcUtils from '../../utils/dbc';\n\nexport default class Signal {\n constructor({\n name,\n startBit = 0,\n size = 0,\n isLittleEndian = true,\n isSigned = false,\n isFloat = false,\n factor = 1,\n offset = 0,\n unit = '',\n receiver = ['XXX'],\n comment = null,\n multiplex = null,\n min = null,\n max = null,\n valueDescriptions = new Map()\n }) {\n Object.assign(this, {\n name,\n startBit,\n size,\n isLittleEndian,\n isSigned,\n isFloat,\n factor,\n offset,\n unit,\n receiver,\n comment,\n multiplex,\n valueDescriptions\n });\n\n const uid = Math.random().toString(36);\n\n if (min == null) {\n min = this.calculateMin();\n }\n if (max == null) {\n max = this.calculateMax();\n }\n\n const colors = this.generateColors();\n\n Object.assign(this, {\n min,\n max,\n uid,\n _colors: colors\n });\n\n Object.defineProperty(this, 'colors', {\n get() {\n console.error('Something is still using the old colors');\n debugger;\n return colors;\n },\n enumberable: false\n });\n }\n\n text() {\n const multiplex = this.multiplex ? ` ${this.multiplex}` : '';\n const byteOrder = this.isLittleEndian ? 1 : 0;\n const signedChar = this.isSigned ? '-' : '+';\n\n return (\n `SG_ ${this.name}${multiplex} : `\n + `${this.startBit}|${this.size}@${byteOrder}${signedChar}`\n + ` (${this.factor},${this.offset})`\n + ` [${this.min}|${this.max}]`\n + ` \"${this.unit}\" ${this.receiver}`\n );\n }\n\n valueDescriptionText(msgId) {\n const entryPairs = Array.from(this.valueDescriptions.entries());\n const values = entryPairs.reduce(\n (str, [value, desc]) => `${str + value} \"${desc}\" `,\n ''\n );\n return `VAL_ ${msgId} ${this.name} ${values};`;\n }\n\n lsbBitIndex() {\n // Returns LSB bit index in matrix order (see AddSignals.js)\n\n if (this.isLittleEndian) {\n return this.startBit;\n }\n const lsbBitNumber = this.lsbBitNumber();\n\n return DbcUtils.matrixBitNumber(lsbBitNumber);\n }\n\n lsbBitNumber() {\n // Returns LSB bit number in big endian ordering\n\n return DbcUtils.bigEndianBitIndex(this.startBit) + this.size - 1;\n }\n\n msbBitIndex() {\n if (this.isLittleEndian) {\n return this.startBit + this.size - 1;\n }\n return this.startBit;\n }\n\n littleEndianBitDescription(bitIndex) {\n const bitRange = [this.startBit, this.startBit + this.size - 1];\n if (bitIndex < bitRange[0] || bitIndex > bitRange[1]) {\n return null;\n }\n const bitNumber = bitIndex - bitRange[0];\n const isLsb = bitIndex === bitRange[0];\n const isMsb = bitIndex === bitRange[1];\n return { bitNumber, isLsb, isMsb };\n }\n\n bigEndianBitDescription(bitIndex) {\n const start = DbcUtils.bigEndianBitIndex(this.startBit);\n const range = [start, start + this.size - 1];\n const bitNumber = DbcUtils.bigEndianBitIndex(bitIndex);\n\n if (bitNumber < range[0] || bitNumber > range[1]) {\n return null;\n }\n\n const isLsb = bitNumber === range[1];\n const isMsb = bitIndex === this.startBit;\n return {\n bitNumber,\n isLsb,\n isMsb,\n range\n };\n }\n\n bitDescription(bitIndex) {\n if (this.isLittleEndian) {\n return this.littleEndianBitDescription(bitIndex);\n }\n return this.bigEndianBitDescription(bitIndex);\n }\n\n calculateRawRange() {\n let rawRange = Math.pow(2, this.size);\n if (this.isSigned) {\n rawRange /= 2;\n }\n return [this.isSigned ? -1 * rawRange : 0, rawRange - 1];\n }\n\n calculateMin() {\n const rawMin = this.calculateRawRange()[0];\n return this.offset + rawMin * this.factor;\n }\n\n calculateMax() {\n const rawMax = this.calculateRawRange()[1];\n return this.offset + rawMax * this.factor;\n }\n\n getColors(messageId) {\n let parts = messageId.split(':').map((p) => ((3 + Number.parseInt(p, 16)) * 3) % 253);\n const colors = this._colors || this.generateColors();\n\n let lastColor = 0;\n\n return colors.map((c) => {\n parts = parts.map(p => p ^ lastColor);\n lastColor = parts.reduce((m, v) => m ^ v, c);\n return lastColor;\n });\n }\n\n generateColors() {\n const colors = randomcolor({ format: 'rgbArray' });\n\n return colors;\n }\n\n equals(otherSignal) {\n return (\n otherSignal.name === this.name\n && otherSignal.startBit === this.startBit\n && otherSignal.size === this.size\n && otherSignal.isLittleEndian === this.isLittleEndian\n && otherSignal.isSigned === this.isSigned\n && otherSignal.isFloat === this.isFloat\n && otherSignal.factor === this.factor\n && otherSignal.offset === this.offset\n && otherSignal.unit === this.unit\n && otherSignal.receiver.length === this.receiver.length\n && otherSignal.receiver.every((v, i) => v === this.receiver[i])\n && otherSignal.comment === this.comment\n && otherSignal.multiplex === this.multiplex\n );\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\n\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js'); // Backwards-compat with node 0.4.x\n\nStream.Stream = Stream; // old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function (dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain); // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n dest.end();\n }\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n if (typeof dest.destroy === 'function') dest.destroy();\n } // don't leave dangling pipes when there are errors.\n\n\n function onerror(er) {\n cleanup();\n\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror); // remove all the event listeners that were added.\n\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n dest.on('close', cleanup);\n dest.emit('pipe', source); // Allow for unix-like usage: A.pipe(B).pipe(C)\n\n return dest;\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null;\nvar ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n};\nvar ReflectOwnKeys;\n\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys;\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n};\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\n\nmodule.exports = EventEmitter; // Backwards-compat with node 0.10.x\n\nEventEmitter.EventEmitter = EventEmitter;\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\n\nvar defaultMaxListeners = 10;\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function get() {\n return defaultMaxListeners;\n },\n set: function set(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function () {\n if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n}; // Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\n\n\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n\n this._maxListeners = n;\n return this;\n};\n\nfunction $getMaxListeners(that) {\n if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return $getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n\n for (var i = 1; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var doError = type === 'error';\n var events = this._events;\n if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.\n\n if (doError) {\n var er;\n if (args.length > 0) er = args[0];\n\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n } // At least give some kind of context to the user\n\n\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n if (handler === undefined) return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n\n for (var i = 0; i < len; ++i) {\n ReflectApply(listeners[i], this, args);\n }\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = target._events;\n\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n\n events = target._events;\n }\n\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n } // Check for listener leak\n\n\n m = $getMaxListeners(target);\n\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true; // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n\n var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener = function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n};\n\nfunction onceWrapper() {\n var args = [];\n\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n ReflectApply(this.listener, this.target, args);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = {\n fired: false,\n wrapFn: undefined,\n target: target,\n type: type,\n listener: listener\n };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n}; // Emits a 'removeListener' event if and only if the listener was removed.\n\n\nEventEmitter.prototype.removeListener = function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n\n events = this._events;\n if (events === undefined) return this;\n list = events[type];\n if (list === undefined) return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else {\n delete events[type];\n if (events.removeListener) this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0) return this;\n if (position === 0) list.shift();else {\n spliceOne(list, position);\n }\n if (list.length === 1) events[type] = list[0];\n if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {\n var listeners, events, i;\n events = this._events;\n if (events === undefined) return this; // not listening for removeListener, no need to emit\n\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];\n }\n\n return this;\n } // emit removeListener for all listeners on all events\n\n\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n};\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n if (events === undefined) return [];\n var evlistener = events[type];\n if (evlistener === undefined) return [];\n if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function (emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\n\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n\n for (var i = 0; i < n; ++i) {\n copy[i] = arr[i];\n }\n\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++) {\n list[index] = list[index + 1];\n }\n\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n\n return ret;\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n} // Copy static methods from Buffer\n\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n\nmodule.exports = Writable;\n/* <replacement> */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* </replacement> */\n\n/*<replacement>*/\n\n\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Duplex;\n/*</replacement>*/\n\nWritable.WritableState = WritableState;\n/*<replacement>*/\n\nvar util = require('core-util-is');\n\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n var isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end'); // TODO: defer error events consistently everywhere, not just the cb\n\n stream.emit('error', er);\n pna.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /*<replacement>*/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /*</replacement>*/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n stream.emit('error', err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\n};","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar any_pointer_list_1 = require(\"./any-pointer-list\");\n\nexports.AnyPointerList = any_pointer_list_1.AnyPointerList;\n\nvar bool_list_1 = require(\"./bool-list\");\n\nexports.BoolList = bool_list_1.BoolList;\n\nvar composite_list_1 = require(\"./composite-list\");\n\nexports.CompositeList = composite_list_1.CompositeList;\n\nvar data_1 = require(\"./data\");\n\nexports.Data = data_1.Data;\n\nvar data_list_1 = require(\"./data-list\");\n\nexports.DataList = data_list_1.DataList;\n\nvar float32_list_1 = require(\"./float32-list\");\n\nexports.Float32List = float32_list_1.Float32List;\n\nvar float64_list_1 = require(\"./float64-list\");\n\nexports.Float64List = float64_list_1.Float64List;\n\nvar int8_list_1 = require(\"./int8-list\");\n\nexports.Int8List = int8_list_1.Int8List;\n\nvar int16_list_1 = require(\"./int16-list\");\n\nexports.Int16List = int16_list_1.Int16List;\n\nvar int32_list_1 = require(\"./int32-list\");\n\nexports.Int32List = int32_list_1.Int32List;\n\nvar int64_list_1 = require(\"./int64-list\");\n\nexports.Int64List = int64_list_1.Int64List;\n\nvar interface_1 = require(\"./interface\");\n\nexports.Interface = interface_1.Interface;\n\nvar interface_list_1 = require(\"./interface-list\");\n\nexports.InterfaceList = interface_list_1.InterfaceList;\n\nvar list_1 = require(\"./list\");\n\nexports.List = list_1.List;\n\nvar orphan_1 = require(\"./orphan\");\n\nexports.Orphan = orphan_1.Orphan;\n\nvar pointer_list_1 = require(\"./pointer-list\");\n\nexports.PointerList = pointer_list_1.PointerList;\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nexports.PointerType = pointer_type_1.PointerType;\n\nvar pointer_1 = require(\"./pointer\");\n\nexports.Pointer = pointer_1.Pointer;\n\nvar struct_1 = require(\"./struct\");\n\nexports.Struct = struct_1.Struct;\n\nvar text_1 = require(\"./text\");\n\nexports.Text = text_1.Text;\n\nvar text_list_1 = require(\"./text-list\");\n\nexports.TextList = text_list_1.TextList;\n\nvar uint8_list_1 = require(\"./uint8-list\");\n\nexports.Uint8List = uint8_list_1.Uint8List;\n\nvar uint16_list_1 = require(\"./uint16-list\");\n\nexports.Uint16List = uint16_list_1.Uint16List;\n\nvar uint32_list_1 = require(\"./uint32-list\");\n\nexports.Uint32List = uint32_list_1.Uint32List;\n\nvar uint64_list_1 = require(\"./uint64-list\");\n\nexports.Uint64List = uint64_list_1.Uint64List;\n\nvar void_1 = require(\"./void\");\n\nexports.Void = void_1.Void;\nexports.VOID = void_1.VOID;\n\nvar void_list_1 = require(\"./void-list\");\n\nexports.VoidList = void_list_1.VoidList;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nvar trace = debug_1.default('capnp:data');\ntrace('load');\n/**\n * A generic blob of bytes. Can be converted to a DataView or Uint8Array to access its contents using `toDataView()` and\n * `toUint8Array()`. Use `copyBuffer()` to copy an entire buffer at once.\n *\n * @export\n * @class Data\n * @extends {List<number>}\n */\n\nvar Data =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Data, _super);\n\n function Data() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Data.fromPointer = function (pointer) {\n pointer_1.validate(pointer_type_1.PointerType.LIST, pointer, list_element_size_1.ListElementSize.BYTE);\n return this._fromPointerUnchecked(pointer);\n };\n\n Data._fromPointerUnchecked = function (pointer) {\n return new this(pointer.segment, pointer.byteOffset, pointer._capnp.depthLimit);\n };\n /**\n * Copy the contents of `src` into this Data pointer. If `src` is smaller than the length of this pointer then the\n * remaining bytes will be zeroed out. Extra bytes in `src` are ignored.\n *\n * @param {(ArrayBuffer | ArrayBufferView)} src The source buffer.\n * @returns {void}\n */\n // TODO: Would be nice to have a way to zero-copy a buffer by allocating a new segment into the message with that\n // buffer data.\n\n\n Data.prototype.copyBuffer = function (src) {\n var c = pointer_1.getContent(this);\n var dstLength = this.getLength();\n var srcLength = src.byteLength;\n var i = src instanceof ArrayBuffer ? new Uint8Array(src) : new Uint8Array(src.buffer, src.byteOffset, Math.min(dstLength, srcLength));\n var o = new Uint8Array(c.segment.buffer, c.byteOffset, this.getLength());\n o.set(i);\n\n if (dstLength > srcLength) {\n trace('Zeroing out remaining %d bytes after copy into %s.', dstLength - srcLength, this);\n o.fill(0, srcLength, dstLength);\n } else if (dstLength < srcLength) {\n trace('Truncated %d bytes from source buffer while copying to %s.', srcLength - dstLength, this);\n }\n };\n /**\n * Read a byte from the specified offset.\n *\n * @param {number} byteOffset The byte offset to read.\n * @returns {number} The byte value.\n */\n\n\n Data.prototype.get = function (byteOffset) {\n var c = pointer_1.getContent(this);\n return c.segment.getUint8(c.byteOffset + byteOffset);\n };\n /**\n * Write a byte at the specified offset.\n *\n * @param {number} byteOffset The byte offset to set.\n * @param {number} value The byte value to set.\n * @returns {void}\n */\n\n\n Data.prototype.set = function (byteOffset, value) {\n var c = pointer_1.getContent(this);\n c.segment.setUint8(c.byteOffset + byteOffset, value);\n };\n /**\n * Creates a **copy** of the underlying buffer data and returns it as an ArrayBuffer.\n *\n * To obtain a reference to the underlying buffer instead, use `toUint8Array()` or `toDataView()`.\n *\n * @returns {ArrayBuffer} A copy of this data buffer.\n */\n\n\n Data.prototype.toArrayBuffer = function () {\n var c = pointer_1.getContent(this);\n return c.segment.buffer.slice(c.byteOffset, c.byteOffset + this.getLength());\n };\n /**\n * Convert this Data pointer to a DataView representing the pointer's contents.\n *\n * WARNING: The DataView references memory from a message segment, so do not venture outside the bounds of the\n * DataView or else BAD THINGS.\n *\n * @returns {DataView} A live reference to the underlying buffer.\n */\n\n\n Data.prototype.toDataView = function () {\n var c = pointer_1.getContent(this);\n return new DataView(c.segment.buffer, c.byteOffset, this.getLength());\n };\n\n Data.prototype.toString = function () {\n return \"Data_\" + _super.prototype.toString.call(this);\n };\n /**\n * Convert this Data pointer to a Uint8Array representing the pointer's contents.\n *\n * WARNING: The Uint8Array references memory from a message segment, so do not venture outside the bounds of the\n * Uint8Array or else BAD THINGS.\n *\n * @returns {DataView} A live reference to the underlying buffer.\n */\n\n\n Data.prototype.toUint8Array = function () {\n var c = pointer_1.getContent(this);\n return new Uint8Array(c.segment.buffer, c.byteOffset, this.getLength());\n };\n\n return Data;\n}(list_1.List);\n\nexports.Data = Data;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../../constants\");\n\nvar types_1 = require(\"../../types\");\n\nvar util_1 = require(\"../../util\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar object_size_1 = require(\"../object-size\");\n\nvar data_1 = require(\"./data\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nvar text_1 = require(\"./text\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar trace = debug_1.default('capnp:struct');\ntrace('load'); // Used to apply bit masks (default values).\n\nvar TMP_WORD = new DataView(new ArrayBuffer(8));\n\nvar Struct =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Struct, _super);\n /**\n * Create a new pointer to a struct.\n *\n * @constructor {Struct}\n * @param {Segment} segment The segment the pointer resides in.\n * @param {number} byteOffset The offset from the beginning of the segment to the beginning of the pointer data.\n * @param {any} [depthLimit=MAX_DEPTH] The nesting depth limit for this object.\n * @param {number} [compositeIndex] If set, then this pointer is actually a reference to a composite list\n * (`this._getPointerTargetType() === PointerType.LIST`), and this number is used as the index of the struct within\n * the list. It is not valid to call `initStruct()` on a composite struct – the struct contents are initialized when\n * the list pointer is initialized.\n */\n\n\n function Struct(segment, byteOffset, depthLimit, compositeIndex) {\n if (depthLimit === void 0) {\n depthLimit = constants_1.MAX_DEPTH;\n }\n\n var _this = _super.call(this, segment, byteOffset, depthLimit) || this;\n\n _this._capnp.compositeIndex = compositeIndex;\n _this._capnp.compositeList = compositeIndex !== undefined;\n return _this;\n }\n\n Struct.toString = function () {\n return this._capnp.displayName;\n };\n\n Struct.prototype.toString = function () {\n return \"Struct_\" + _super.prototype.toString.call(this) + (\"\" + (this._capnp.compositeIndex === undefined ? '' : \",ci:\" + this._capnp.compositeIndex));\n };\n\n Struct._capnp = {\n displayName: 'Struct'\n };\n Struct.getAs = getAs;\n Struct.getBit = getBit;\n Struct.getData = getData;\n Struct.getFloat32 = getFloat32;\n Struct.getFloat64 = getFloat64;\n Struct.getUint8 = getUint8;\n Struct.getUint16 = getUint16;\n Struct.getUint32 = getUint32;\n Struct.getUint64 = getUint64;\n Struct.getInt8 = getInt8;\n Struct.getInt16 = getInt16;\n Struct.getInt32 = getInt32;\n Struct.getInt64 = getInt64;\n Struct.getList = getList;\n Struct.getPointer = getPointer;\n Struct.getPointerAs = getPointerAs;\n Struct.getStruct = getStruct;\n Struct.getText = getText;\n Struct.initData = initData;\n Struct.initList = initList;\n Struct.initStruct = initStruct;\n Struct.initStructAt = initStructAt;\n Struct.setBit = setBit;\n Struct.setFloat32 = setFloat32;\n Struct.setFloat64 = setFloat64;\n Struct.setUint8 = setUint8;\n Struct.setUint16 = setUint16;\n Struct.setUint32 = setUint32;\n Struct.setUint64 = setUint64;\n Struct.setInt8 = setInt8;\n Struct.setInt16 = setInt16;\n Struct.setInt32 = setInt32;\n Struct.setInt64 = setInt64;\n Struct.setText = setText;\n Struct.testWhich = testWhich;\n return Struct;\n}(pointer_1.Pointer);\n\nexports.Struct = Struct;\n/**\n * Initialize a struct with the provided object size. This will allocate new space for the struct contents, ideally in\n * the same segment as this pointer.\n *\n * @param {ObjectSize} size An object describing the size of the struct's data and pointer sections.\n * @param {Struct} s The struct to initialize.\n * @returns {void}\n */\n\nfunction initStruct(size, s) {\n if (s._capnp.compositeIndex !== undefined) throw new Error(util_1.format(errors_1.PTR_INIT_COMPOSITE_STRUCT, s)); // Make sure to clear existing contents before overwriting the pointer data (erase is a noop if already empty).\n\n pointer_1.erase(s);\n var c = s.segment.allocate(object_size_1.getByteLength(size));\n var res = pointer_1.initPointer(c.segment, c.byteOffset, s);\n pointer_1.setStructPointer(res.offsetWords, size, res.pointer);\n}\n\nexports.initStruct = initStruct;\n\nfunction initStructAt(index, StructClass, p) {\n var s = getPointerAs(index, StructClass, p);\n initStruct(StructClass._capnp.size, s);\n return s;\n}\n\nexports.initStructAt = initStructAt;\n/**\n * Make a shallow copy of a struct's contents and update the pointer to point to the new content. The data and pointer\n * sections will be resized to the provided size.\n *\n * WARNING: This method can cause data loss if `dstSize` is smaller than the original size!\n *\n * @param {ObjectSize} dstSize The desired size for the struct contents.\n * @param {Struct} s The struct to resize.\n * @returns {void}\n */\n\nfunction resize(dstSize, s) {\n var srcSize = getSize(s);\n var srcContent = pointer_1.getContent(s);\n var dstContent = s.segment.allocate(object_size_1.getByteLength(dstSize)); // Only copy the data section for now. The pointer section will need to be rewritten.\n\n dstContent.segment.copyWords(dstContent.byteOffset, srcContent.segment, srcContent.byteOffset, Math.min(object_size_1.getDataWordLength(srcSize), object_size_1.getDataWordLength(dstSize)));\n var res = pointer_1.initPointer(dstContent.segment, dstContent.byteOffset, s);\n pointer_1.setStructPointer(res.offsetWords, dstSize, res.pointer); // Iterate through the new pointer section and update the offsets so they point to the right place. This is a bit\n // more complicated than it appears due to the fact that the original pointers could have been far pointers, and\n // the new pointers might need to be allocated as far pointers if the segment is full.\n\n for (var i = 0; i < Math.min(srcSize.pointerLength, dstSize.pointerLength); i++) {\n var srcPtr = new pointer_1.Pointer(srcContent.segment, srcContent.byteOffset + srcSize.dataByteLength + i * 8);\n var srcPtrTarget = pointer_1.followFars(srcPtr);\n var srcPtrContent = pointer_1.getContent(srcPtr);\n var dstPtr = new pointer_1.Pointer(dstContent.segment, dstContent.byteOffset + dstSize.dataByteLength + i * 8); // For composite lists the offset needs to point to the tag word, not the first element which is what getContent\n // returns.\n\n if (pointer_1.getTargetPointerType(srcPtr) === pointer_type_1.PointerType.LIST && pointer_1.getTargetListElementSize(srcPtr) === list_element_size_1.ListElementSize.COMPOSITE) {\n srcPtrContent.byteOffset -= 8;\n }\n\n var r = pointer_1.initPointer(srcPtrContent.segment, srcPtrContent.byteOffset, dstPtr); // Read the old pointer data, but discard the original offset.\n\n var a = srcPtrTarget.segment.getUint8(srcPtrTarget.byteOffset) & 0x03;\n var b = srcPtrTarget.segment.getUint32(srcPtrTarget.byteOffset + 4);\n r.pointer.segment.setUint32(r.pointer.byteOffset, a | r.offsetWords << 2);\n r.pointer.segment.setUint32(r.pointer.byteOffset + 4, b);\n } // Zero out the old data and pointer sections.\n\n\n srcContent.segment.fillZeroWords(srcContent.byteOffset, object_size_1.getWordLength(srcSize));\n}\n\nexports.resize = resize;\n\nfunction adopt(src, s) {\n if (s._capnp.compositeIndex !== undefined) throw new Error(util_1.format(errors_1.PTR_ADOPT_COMPOSITE_STRUCT, s));\n pointer_1.Pointer.adopt(src, s);\n}\n\nexports.adopt = adopt;\n\nfunction disown(s) {\n if (s._capnp.compositeIndex !== undefined) throw new Error(util_1.format(errors_1.PTR_DISOWN_COMPOSITE_STRUCT, s));\n return pointer_1.Pointer.disown(s);\n}\n\nexports.disown = disown;\n/**\n * Convert a struct to a struct of the provided class. Particularly useful when casting to nested group types.\n *\n * @protected\n * @template T\n * @param {StructCtor<T>} StructClass The struct class to convert to. Not particularly useful if `Struct`.\n * @param {Struct} s The struct to convert.\n * @returns {T} A new instance of the desired struct class pointing to the same location.\n */\n\nfunction getAs(StructClass, s) {\n return new StructClass(s.segment, s.byteOffset, s._capnp.depthLimit, s._capnp.compositeIndex);\n}\n\nexports.getAs = getAs;\n/**\n * Read a boolean (bit) value out of a struct.\n *\n * @protected\n * @param {number} bitOffset The offset in **bits** from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {boolean} The value.\n */\n\nfunction getBit(bitOffset, s, defaultMask) {\n var byteOffset = Math.floor(bitOffset / 8);\n var bitMask = 1 << bitOffset % 8;\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n var v = ds.segment.getUint8(ds.byteOffset + byteOffset);\n if (defaultMask === undefined) return (v & bitMask) !== 0;\n var defaultValue = defaultMask.getUint8(0);\n return ((v ^ defaultValue) & bitMask) !== 0;\n}\n\nexports.getBit = getBit;\n\nfunction getData(index, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n var l = new data_1.Data(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n\n if (pointer_1.isNull(l)) {\n list_1.List.initList(list_element_size_1.ListElementSize.BYTE, 0, l);\n }\n\n return l;\n}\n\nexports.getData = getData;\n\nfunction getDataSection(s) {\n return pointer_1.getContent(s);\n}\n\nexports.getDataSection = getDataSection;\n/**\n * Read a float32 value out of a struct.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getFloat32(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getFloat32(ds.byteOffset + byteOffset);\n var v = ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint32(0, true);\n TMP_WORD.setUint32(0, v, constants_1.NATIVE_LITTLE_ENDIAN);\n return TMP_WORD.getFloat32(0, constants_1.NATIVE_LITTLE_ENDIAN);\n}\n\nexports.getFloat32 = getFloat32;\n/**\n * Read a float64 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getFloat64(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n var lo = ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint32(0, true);\n var hi = ds.segment.getUint32(ds.byteOffset + byteOffset + 4) ^ defaultMask.getUint32(4, true);\n TMP_WORD.setUint32(0, lo, constants_1.NATIVE_LITTLE_ENDIAN);\n TMP_WORD.setUint32(4, hi, constants_1.NATIVE_LITTLE_ENDIAN);\n return TMP_WORD.getFloat64(0, constants_1.NATIVE_LITTLE_ENDIAN);\n }\n\n return ds.segment.getFloat64(ds.byteOffset + byteOffset);\n}\n\nexports.getFloat64 = getFloat64;\n/**\n * Read an int16 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getInt16(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 2, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getInt16(ds.byteOffset + byteOffset);\n var v = ds.segment.getUint16(ds.byteOffset + byteOffset) ^ defaultMask.getUint16(0, true);\n TMP_WORD.setUint16(0, v, constants_1.NATIVE_LITTLE_ENDIAN);\n return TMP_WORD.getInt16(0, constants_1.NATIVE_LITTLE_ENDIAN);\n}\n\nexports.getInt16 = getInt16;\n/**\n * Read an int32 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getInt32(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getInt32(ds.byteOffset + byteOffset);\n var v = ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint16(0, true);\n TMP_WORD.setUint32(0, v, constants_1.NATIVE_LITTLE_ENDIAN);\n return TMP_WORD.getInt32(0, constants_1.NATIVE_LITTLE_ENDIAN);\n}\n\nexports.getInt32 = getInt32;\n/**\n * Read an int64 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getInt64(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getInt64(ds.byteOffset + byteOffset);\n var lo = ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint32(0, true);\n var hi = ds.segment.getUint32(ds.byteOffset + byteOffset + 4) ^ defaultMask.getUint32(4, true);\n TMP_WORD.setUint32(0, lo, constants_1.NATIVE_LITTLE_ENDIAN);\n TMP_WORD.setUint32(4, hi, constants_1.NATIVE_LITTLE_ENDIAN);\n return new types_1.Int64(new Uint8Array(TMP_WORD.buffer.slice(0)));\n}\n\nexports.getInt64 = getInt64;\n/**\n * Read an int8 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getInt8(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getInt8(ds.byteOffset + byteOffset);\n var v = ds.segment.getUint8(ds.byteOffset + byteOffset) ^ defaultMask.getUint8(0);\n TMP_WORD.setUint8(0, v);\n return TMP_WORD.getInt8(0);\n}\n\nexports.getInt8 = getInt8;\n\nfunction getList(index, ListClass, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n var l = new ListClass(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n\n if (pointer_1.isNull(l)) {\n list_1.List.initList(ListClass._capnp.size, 0, l, ListClass._capnp.compositeSize);\n } else if (ListClass._capnp.compositeSize !== undefined) {\n // If this is a composite list we need to be sure the composite elements are big enough to hold everything as\n // specified in the schema. If the new schema has added fields we'll need to \"resize\" (shallow-copy) the list so\n // it has room for the new fields.\n var srcSize = pointer_1.getTargetCompositeListSize(l);\n var dstSize = ListClass._capnp.compositeSize;\n\n if (dstSize.dataByteLength > srcSize.dataByteLength || dstSize.pointerLength > srcSize.pointerLength) {\n var srcContent = pointer_1.getContent(l);\n var srcLength = pointer_1.getTargetListLength(l);\n trace('resizing composite list %s due to protocol upgrade, new size: %d', l, object_size_1.getByteLength(dstSize) * srcLength); // Allocate an extra 8 bytes for the tag.\n\n var dstContent = l.segment.allocate(object_size_1.getByteLength(dstSize) * srcLength + 8);\n var res = pointer_1.initPointer(dstContent.segment, dstContent.byteOffset, l);\n pointer_1.setListPointer(res.offsetWords, ListClass._capnp.size, srcLength, res.pointer, dstSize); // Write the new tag word.\n\n pointer_1.setStructPointer(srcLength, dstSize, dstContent); // Seek ahead past the tag word before copying the content.\n\n dstContent.byteOffset += 8;\n\n for (var i = 0; i < srcLength; i++) {\n var srcElementOffset = srcContent.byteOffset + i * object_size_1.getByteLength(srcSize);\n var dstElementOffset = dstContent.byteOffset + i * object_size_1.getByteLength(dstSize); // Copy the data section.\n\n dstContent.segment.copyWords(dstElementOffset, srcContent.segment, srcElementOffset, object_size_1.getWordLength(srcSize)); // Iterate through the pointers and update the offsets so they point to the right place.\n\n for (var j = 0; j < srcSize.pointerLength; j++) {\n var srcPtr = new pointer_1.Pointer(srcContent.segment, srcElementOffset + srcSize.dataByteLength + j * 8);\n var dstPtr = new pointer_1.Pointer(dstContent.segment, dstElementOffset + dstSize.dataByteLength + j * 8);\n var srcPtrTarget = pointer_1.followFars(srcPtr);\n var srcPtrContent = pointer_1.getContent(srcPtr);\n\n if (pointer_1.getTargetPointerType(srcPtr) === pointer_type_1.PointerType.LIST && pointer_1.getTargetListElementSize(srcPtr) === list_element_size_1.ListElementSize.COMPOSITE) {\n srcPtrContent.byteOffset -= 8;\n }\n\n var r = pointer_1.initPointer(srcPtrContent.segment, srcPtrContent.byteOffset, dstPtr); // Read the old pointer data, but discard the original offset.\n\n var a = srcPtrTarget.segment.getUint8(srcPtrTarget.byteOffset) & 0x03;\n var b = srcPtrTarget.segment.getUint32(srcPtrTarget.byteOffset + 4);\n r.pointer.segment.setUint32(r.pointer.byteOffset, a | r.offsetWords << 2);\n r.pointer.segment.setUint32(r.pointer.byteOffset + 4, b);\n }\n } // Zero out the old content.\n\n\n srcContent.segment.fillZeroWords(srcContent.byteOffset, object_size_1.getWordLength(srcSize) * srcLength);\n }\n }\n\n return l;\n}\n\nexports.getList = getList;\n\nfunction getPointer(index, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n return new pointer_1.Pointer(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n}\n\nexports.getPointer = getPointer;\n\nfunction getPointerAs(index, PointerClass, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n return new PointerClass(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n}\n\nexports.getPointerAs = getPointerAs;\n\nfunction getPointerSection(s) {\n var ps = pointer_1.getContent(s);\n ps.byteOffset += util_1.padToWord(getSize(s).dataByteLength);\n return ps;\n}\n\nexports.getPointerSection = getPointerSection;\n\nfunction getSize(s) {\n if (s._capnp.compositeIndex !== undefined) {\n // For composite lists the object size is stored in a tag word right before the content.\n var c = pointer_1.getContent(s, true);\n c.byteOffset -= 8;\n return pointer_1.getStructSize(c);\n }\n\n return pointer_1.getTargetStructSize(s);\n}\n\nexports.getSize = getSize;\n\nfunction getStruct(index, StructClass, s) {\n var t = getPointerAs(index, StructClass, s);\n\n if (pointer_1.isNull(t)) {\n initStruct(StructClass._capnp.size, t);\n } else {\n pointer_1.validate(pointer_type_1.PointerType.STRUCT, t);\n var ts = pointer_1.getTargetStructSize(t); // This can happen when reading a struct that was constructed with an older version of the same schema, and new\n // fields were added to the struct. A shallow copy of the struct will be made so that there's enough room for the\n // data and pointer sections. This will unfortunately leave a \"hole\" of zeroes in the message, but that hole will\n // at least compress well.\n\n if (ts.dataByteLength < StructClass._capnp.size.dataByteLength || ts.pointerLength < StructClass._capnp.size.pointerLength) {\n trace('need to resize child struct %s', t);\n resize(StructClass._capnp.size, t);\n }\n }\n\n return t;\n}\n\nexports.getStruct = getStruct;\n\nfunction getText(index, s) {\n return text_1.Text.fromPointer(getPointer(index, s)).get(0);\n}\n\nexports.getText = getText;\n/**\n * Read an uint16 value out of a struct..\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getUint16(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 2, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getUint16(ds.byteOffset + byteOffset);\n return ds.segment.getUint16(ds.byteOffset + byteOffset) ^ defaultMask.getUint16(0, true);\n}\n\nexports.getUint16 = getUint16;\n/**\n * Read an uint32 value out of a struct.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getUint32(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getUint32(ds.byteOffset + byteOffset);\n return ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint32(0, true);\n}\n\nexports.getUint32 = getUint32;\n/**\n * Read an uint64 value out of a struct.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getUint64(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getUint64(ds.byteOffset + byteOffset);\n var lo = ds.segment.getUint32(ds.byteOffset + byteOffset) ^ defaultMask.getUint32(0, true);\n var hi = ds.segment.getUint32(ds.byteOffset + byteOffset + 4) ^ defaultMask.getUint32(4, true);\n TMP_WORD.setUint32(0, lo, constants_1.NATIVE_LITTLE_ENDIAN);\n TMP_WORD.setUint32(4, hi, constants_1.NATIVE_LITTLE_ENDIAN);\n return new types_1.Uint64(new Uint8Array(TMP_WORD.buffer.slice(0)));\n}\n\nexports.getUint64 = getUint64;\n/**\n * Read an uint8 value out of a struct.\n *\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {Struct} s The struct to read from.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {number} The value.\n */\n\nfunction getUint8(byteOffset, s, defaultMask) {\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n if (defaultMask === undefined) return ds.segment.getUint8(ds.byteOffset + byteOffset);\n return ds.segment.getUint8(ds.byteOffset + byteOffset) ^ defaultMask.getUint8(0);\n}\n\nexports.getUint8 = getUint8;\n\nfunction initData(index, length, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n var l = new data_1.Data(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n pointer_1.erase(l);\n list_1.List.initList(list_element_size_1.ListElementSize.BYTE, length, l);\n return l;\n}\n\nexports.initData = initData;\n\nfunction initList(index, ListClass, length, s) {\n checkPointerBounds(index, s);\n var ps = getPointerSection(s);\n ps.byteOffset += index * 8;\n var l = new ListClass(ps.segment, ps.byteOffset, s._capnp.depthLimit - 1);\n pointer_1.erase(l);\n list_1.List.initList(ListClass._capnp.size, length, l, ListClass._capnp.compositeSize);\n return l;\n}\n\nexports.initList = initList;\n/**\n * Write a boolean (bit) value to the struct.\n *\n * @protected\n * @param {number} bitOffset The offset in **bits** from the start of the data section.\n * @param {boolean} value The value to write (writes a 0 for `false`, 1 for `true`).\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setBit(bitOffset, value, s, defaultMask) {\n var byteOffset = Math.floor(bitOffset / 8);\n var bitMask = 1 << bitOffset % 8;\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n var b = ds.segment.getUint8(ds.byteOffset + byteOffset); // If the default mask bit is set, that means `true` values are actually written as `0`.\n\n if (defaultMask !== undefined) value = (defaultMask.getUint8(0) & bitMask) !== 0 ? !value : value;\n ds.segment.setUint8(ds.byteOffset + byteOffset, value ? b | bitMask : b & ~bitMask);\n}\n\nexports.setBit = setBit;\n/**\n * Write a primitive float32 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setFloat32(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n TMP_WORD.setFloat32(0, value, constants_1.NATIVE_LITTLE_ENDIAN);\n var v = TMP_WORD.getUint32(0, constants_1.NATIVE_LITTLE_ENDIAN) ^ defaultMask.getUint32(0, true);\n ds.segment.setUint32(ds.byteOffset + byteOffset, v);\n return;\n }\n\n ds.segment.setFloat32(ds.byteOffset + byteOffset, value);\n}\n\nexports.setFloat32 = setFloat32;\n/**\n * Write a primitive float64 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setFloat64(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n TMP_WORD.setFloat64(0, value, constants_1.NATIVE_LITTLE_ENDIAN);\n var lo = TMP_WORD.getUint32(0, constants_1.NATIVE_LITTLE_ENDIAN) ^ defaultMask.getUint32(0, true);\n var hi = TMP_WORD.getUint32(4, constants_1.NATIVE_LITTLE_ENDIAN) ^ defaultMask.getUint32(4, true);\n ds.segment.setUint32(ds.byteOffset + byteOffset, lo);\n ds.segment.setUint32(ds.byteOffset + byteOffset + 4, hi);\n return;\n }\n\n ds.segment.setFloat64(ds.byteOffset + byteOffset, value);\n}\n\nexports.setFloat64 = setFloat64;\n/**\n * Write a primitive int16 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setInt16(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 2, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n TMP_WORD.setInt16(0, value, constants_1.NATIVE_LITTLE_ENDIAN);\n var v = TMP_WORD.getUint16(0, constants_1.NATIVE_LITTLE_ENDIAN) ^ defaultMask.getUint16(0, true);\n ds.segment.setUint16(ds.byteOffset + byteOffset, v);\n return;\n }\n\n ds.segment.setInt16(ds.byteOffset + byteOffset, value);\n}\n\nexports.setInt16 = setInt16;\n/**\n * Write a primitive int32 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setInt32(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n TMP_WORD.setInt32(0, value, constants_1.NATIVE_LITTLE_ENDIAN);\n var v = TMP_WORD.getUint32(0, constants_1.NATIVE_LITTLE_ENDIAN) ^ defaultMask.getUint32(0, true);\n ds.segment.setUint32(ds.byteOffset + byteOffset, v);\n return;\n }\n\n ds.segment.setInt32(ds.byteOffset + byteOffset, value);\n}\n\nexports.setInt32 = setInt32;\n/**\n * Write a primitive int64 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setInt64(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n // PERF: We could cast the Int64 to a DataView to apply the mask using four 32-bit reads, but we already have a\n // typed array so avoiding the object allocation turns out to be slightly faster. Int64 is guaranteed to be in\n // little-endian format by design.\n for (var i = 0; i < 8; i++) {\n ds.segment.setUint8(ds.byteOffset + byteOffset + i, value.buffer[i] ^ defaultMask.getUint8(i));\n }\n\n return;\n }\n\n ds.segment.setInt64(ds.byteOffset + byteOffset, value);\n}\n\nexports.setInt64 = setInt64;\n/**\n * Write a primitive int8 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setInt8(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n TMP_WORD.setInt8(0, value);\n var v = TMP_WORD.getUint8(0) ^ defaultMask.getUint8(0);\n ds.segment.setUint8(ds.byteOffset + byteOffset, v);\n return;\n }\n\n ds.segment.setInt8(ds.byteOffset + byteOffset, value);\n}\n\nexports.setInt8 = setInt8;\n\nfunction setPointer(index, value, s) {\n pointer_1.copyFrom(value, getPointer(index, s));\n}\n\nexports.setPointer = setPointer;\n\nfunction setText(index, value, s) {\n text_1.Text.fromPointer(getPointer(index, s)).set(0, value);\n}\n\nexports.setText = setText;\n/**\n * Write a primitive uint16 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setUint16(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 2, s);\n var ds = getDataSection(s);\n if (defaultMask !== undefined) value ^= defaultMask.getUint16(0, true);\n ds.segment.setUint16(ds.byteOffset + byteOffset, value);\n}\n\nexports.setUint16 = setUint16;\n/**\n * Write a primitive uint32 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setUint32(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 4, s);\n var ds = getDataSection(s);\n if (defaultMask !== undefined) value ^= defaultMask.getUint32(0, true);\n ds.segment.setUint32(ds.byteOffset + byteOffset, value);\n}\n\nexports.setUint32 = setUint32;\n/**\n * Write a primitive uint64 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setUint64(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 8, s);\n var ds = getDataSection(s);\n\n if (defaultMask !== undefined) {\n // PERF: We could cast the Uint64 to a DataView to apply the mask using four 32-bit reads, but we already have a\n // typed array so avoiding the object allocation turns out to be slightly faster. Uint64 is guaranteed to be in\n // little-endian format by design.\n for (var i = 0; i < 8; i++) {\n ds.segment.setUint8(ds.byteOffset + byteOffset + i, value.buffer[i] ^ defaultMask.getUint8(i));\n }\n\n return;\n }\n\n ds.segment.setUint64(ds.byteOffset + byteOffset, value);\n}\n\nexports.setUint64 = setUint64;\n/**\n * Write a primitive uint8 value to the struct.\n *\n * @protected\n * @param {number} byteOffset The offset in bytes from the start of the data section.\n * @param {number} value The value to write.\n * @param {Struct} s The struct to write to.\n * @param {DataView} [defaultMask] The default value as a DataView.\n * @returns {void}\n */\n\nfunction setUint8(byteOffset, value, s, defaultMask) {\n checkDataBounds(byteOffset, 1, s);\n var ds = getDataSection(s);\n if (defaultMask !== undefined) value ^= defaultMask.getUint8(0);\n ds.segment.setUint8(ds.byteOffset + byteOffset, value);\n}\n\nexports.setUint8 = setUint8;\n\nfunction testWhich(name, found, wanted, s) {\n if (found !== wanted) throw new Error(util_1.format(errors_1.PTR_INVALID_UNION_ACCESS, s, name, found, wanted));\n}\n\nexports.testWhich = testWhich;\n\nfunction checkDataBounds(byteOffset, byteLength, s) {\n var dataByteLength = getSize(s).dataByteLength;\n\n if (byteOffset < 0 || byteLength < 0 || byteOffset + byteLength > dataByteLength) {\n throw new Error(util_1.format(errors_1.PTR_STRUCT_DATA_OUT_OF_BOUNDS, s, byteLength, byteOffset, dataByteLength));\n }\n}\n\nexports.checkDataBounds = checkDataBounds;\n\nfunction checkPointerBounds(index, s) {\n var pointerLength = getSize(s).pointerLength;\n\n if (index < 0 || index >= pointerLength) {\n throw new Error(util_1.format(errors_1.PTR_STRUCT_POINTER_OUT_OF_BOUNDS, s, index, pointerLength));\n }\n}\n\nexports.checkPointerBounds = checkPointerBounds;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar int64_1 = require(\"./int64\");\n\nexports.Int64 = int64_1.Int64;\n\nvar uint64_1 = require(\"./uint64\");\n\nexports.Uint64 = uint64_1.Uint64;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar util_1 = require(\"../../util\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nvar trace = debug_1.default('capnp:text');\ntrace('load');\n\nvar Text =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Text, _super);\n\n function Text() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Text.fromPointer = function (pointer) {\n pointer_1.validate(pointer_type_1.PointerType.LIST, pointer, list_element_size_1.ListElementSize.BYTE);\n return textFromPointerUnchecked(pointer);\n };\n /**\n * Read a utf-8 encoded string value from this pointer.\n *\n * @param {number} [index] The index at which to start reading; defaults to zero.\n * @returns {string} The string value.\n */\n\n\n Text.prototype.get = function (index) {\n if (index === void 0) {\n index = 0;\n }\n\n if (index !== 0) trace('Called get() on %s with a strange index (%d).', this, index);\n if (pointer_1.isNull(this)) return '';\n var c = pointer_1.getContent(this); // Remember to exclude the NUL byte.\n\n return util_1.decodeUtf8(new Uint8Array(c.segment.buffer, c.byteOffset + index, this.getLength() - index));\n };\n /**\n * Get the number of utf-8 encoded bytes in this text. This does **not** include the NUL byte.\n *\n * @returns {number} The number of bytes allocated for the text.\n */\n\n\n Text.prototype.getLength = function () {\n return _super.prototype.getLength.call(this) - 1;\n };\n /**\n * Write a utf-8 encoded string value starting at the specified index.\n *\n * @param {number} index The index at which to start copying the string. Note that if this is not zero the bytes\n * before `index` will be left as-is. All bytes after `index` will be overwritten.\n * @param {string} value The string value to set.\n * @returns {void}\n */\n\n\n Text.prototype.set = function (index, value) {\n if (index !== 0) trace('Called set() on %s with a strange index (%d).', this, index);\n var src = util_1.encodeUtf8(value);\n var dstLength = src.byteLength + index;\n var c;\n var original; // TODO: Consider reusing existing space if list is already initialized and there's enough room for the value.\n\n if (!pointer_1.isNull(this)) {\n c = pointer_1.getContent(this); // Only copy bytes that will remain after copying. Everything after `index` should end up truncated.\n\n var originalLength = this.getLength();\n\n if (originalLength >= index) {\n originalLength = index;\n } else {\n trace('%d byte gap exists between original text and new text in %s.', index - originalLength, this);\n }\n\n original = new Uint8Array(c.segment.buffer.slice(c.byteOffset, c.byteOffset + Math.min(originalLength, index)));\n pointer_1.erase(this);\n } // Always allocate an extra byte for the NUL byte.\n\n\n list_1.initList(list_element_size_1.ListElementSize.BYTE, dstLength + 1, this);\n c = pointer_1.getContent(this);\n var dst = new Uint8Array(c.segment.buffer, c.byteOffset, dstLength);\n if (original) dst.set(original);\n dst.set(src, index);\n };\n\n Text.prototype.toString = function () {\n return \"Text_\" + _super.prototype.toString.call(this);\n };\n\n return Text;\n}(list_1.List);\n\nexports.Text = Text;\n\nfunction textFromPointerUnchecked(pointer) {\n return new Text(pointer.segment, pointer.byteOffset, pointer._capnp.depthLimit);\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n'use strict';\n/* eslint-disable no-unused-vars */\n\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n if (val === null || val === undefined) {\n throw new TypeError('Object.assign cannot be called with null or undefined');\n }\n\n return Object(val);\n}\n\nfunction shouldUseNative() {\n try {\n if (!Object.assign) {\n return false;\n } // Detect buggy property enumeration order in older V8 versions.\n // https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\n\n var test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\n test1[5] = 'de';\n\n if (Object.getOwnPropertyNames(test1)[0] === '5') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test2 = {};\n\n for (var i = 0; i < 10; i++) {\n test2['_' + String.fromCharCode(i)] = i;\n }\n\n var order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n return test2[n];\n });\n\n if (order2.join('') !== '0123456789') {\n return false;\n } // https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\n\n var test3 = {};\n 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n test3[letter] = letter;\n });\n\n if (Object.keys(Object.assign({}, test3)).join('') !== 'abcdefghijklmnopqrst') {\n return false;\n }\n\n return true;\n } catch (err) {\n // We don't expect any of the above to throw, but better to be safe.\n return false;\n }\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n var from;\n var to = toObject(target);\n var symbols;\n\n for (var s = 1; s < arguments.length; s++) {\n from = Object(arguments[s]);\n\n for (var key in from) {\n if (hasOwnProperty.call(from, key)) {\n to[key] = from[key];\n }\n }\n\n if (getOwnPropertySymbols) {\n symbols = getOwnPropertySymbols(from);\n\n for (var i = 0; i < symbols.length; i++) {\n if (propIsEnumerable.call(from, symbols[i])) {\n to[symbols[i]] = from[symbols[i]];\n }\n }\n }\n }\n\n return to;\n};","// 7.1.4 ToInteger\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\nmodule.exports = function (it) {\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};","module.exports = true;","var isObject = require('./_is-object');\n\nvar document = require('./_global').document; // typeof document.createElement is 'object' in old IE\n\n\nvar is = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\n\nvar defined = require('./_defined');\n\nmodule.exports = function (it) {\n return IObject(defined(it));\n};","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\n\nvar min = Math.min;\n\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};","var shared = require('./_shared')('keys');\n\nvar uid = require('./_uid');\n\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};","var def = require('./_object-dp').f;\n\nvar has = require('./_has');\n\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {\n configurable: true,\n value: tag\n });\n};","require('./es6.array.iterator');\n\nvar global = require('./_global');\n\nvar hide = require('./_hide');\n\nvar Iterators = require('./_iterators');\n\nvar TO_STRING_TAG = require('./_wks')('toStringTag');\n\nvar DOMIterables = ('CSSRuleList,CSSStyleDeclaration,CSSValueList,ClientRectList,DOMRectList,DOMStringList,' + 'DOMTokenList,DataTransferItemList,FileList,HTMLAllCollection,HTMLCollection,HTMLFormElement,HTMLSelectElement,' + 'MediaList,MimeTypeArray,NamedNodeMap,NodeList,PaintRequestList,Plugin,PluginArray,SVGLengthList,SVGNumberList,' + 'SVGPathSegList,SVGPointList,SVGStringList,SVGTransformList,SourceBufferList,StyleSheetList,TextTrackCueList,' + 'TextTrackList,TouchList').split(',');\n\nfor (var i = 0; i < DOMIterables.length; i++) {\n var NAME = DOMIterables[i];\n var Collection = global[NAME];\n var proto = Collection && Collection.prototype;\n if (proto && !proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\n\nvar TAG = require('./_wks')('toStringTag'); // ES3 wrong here\n\n\nvar ARG = cof(function () {\n return arguments;\n}()) == 'Arguments'; // fallback for IE11 Script Access Denied error\n\nvar tryGet = function tryGet(it, key) {\n try {\n return it[key];\n } catch (e) {\n /* empty */\n }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case\n : ARG ? cof(O) // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};","var classof = require('./_classof');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar Iterators = require('./_iterators');\n\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};","'use strict'; // 25.4.1.5 NewPromiseCapability(C)\n\nvar aFunction = require('./_a-function');\n\nfunction PromiseCapability(C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};","var request = require('xhr-request');\n\nvar join = require('url-join');\n\nvar extend = require('xtend');\n\nvar assign = require('xtend/mutable');\n\nvar isFunction = require('is-function');\n\nvar httpError = require('http-status-error');\n\nvar isError = require('is-error-code');\n\nvar jsonParse = require('safe-json-parse');\n\nvar isObject = require('is-obj');\n\nvar Query = require('query-string-flatten');\n\nmodule.exports = Client;\nvar methods = ['get', 'post', 'put', 'patch', 'head', 'delete'];\nvar defaultConfig = {\n baseUrl: 'http://localhost:8000',\n jwt: false,\n token: null,\n options: {}\n};\n\nfunction Client(config) {\n config = config || {};\n config = extend(defaultConfig, config);\n Request.configure = configure;\n Request.config = config;\n return httpMethods(Request);\n\n function Request(path, options, callback) {\n path = path || '';\n\n if (isFunction(options)) {\n callback = options;\n options = {};\n }\n\n options = extend(config.options, options);\n setQuery(options);\n setToken(options);\n var url = join(config.baseUrl, path);\n return request(url, options, responseHandler(callback, {\n url: url,\n method: options.method\n }));\n }\n\n function setToken(options) {\n if (!options.token && !config.token) {\n return;\n }\n\n options.headers = options.headers || {};\n var keyName = options.authorization || config.authorization || 'Authorization';\n var token = options.token || config.token;\n\n if (options.jwt || config.jwt) {\n token = 'Bearer ' + token;\n }\n\n options.headers[keyName] = token;\n delete options.token;\n }\n\n function responseHandler(callback, options) {\n // var start = new Date()\n return function handleResponse(err, data, response) {\n // var end = new Date()\n if (err) {\n return callback(err, null, response);\n }\n\n if (isError(response.statusCode)) {\n return createError(data, response, function (err) {\n callback(err, null, response);\n });\n }\n\n var parse = options.parse || config.parse;\n data = isFunction(parse) ? parse(data, response) : data;\n callback(null, data, response);\n };\n }\n\n function configure(_config) {\n assign(config, _config);\n }\n}\n\nfunction setQuery(options) {\n var query = options.query;\n if (!query) return;\n options.query = (typeof query === 'string' ? String : Query)(query);\n}\n\nfunction createError(data, response, callback) {\n var error = httpError(response.statusCode);\n if (!data) return callback(error);\n\n if (data) {\n if (Array.isArray(data)) {\n data = data[0];\n }\n\n if (isObject(data)) {\n return callback(assign(error, data));\n }\n\n jsonParse(data, function (err, json) {\n if (err) return callback(err);\n callback(assign(error, json));\n });\n }\n}\n\nfunction httpMethods(request) {\n methods.forEach(function createMethod(method) {\n request[method] = function (path, options, callback) {\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n options.method = method;\n return request(path, options, callback);\n };\n });\n return request;\n}","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar constructorRegex = /^\\s*class\\b/;\n\nvar isES6ClassFn = function isES6ClassFunction(value) {\n try {\n var fnStr = fnToStr.call(value);\n return constructorRegex.test(fnStr);\n } catch (e) {\n return false; // not a function\n }\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n try {\n if (isES6ClassFn(value)) {\n return false;\n }\n\n fnToStr.call(value);\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar toStr = Object.prototype.toString;\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nmodule.exports = function isCallable(value) {\n if (!value) {\n return false;\n }\n\n if (typeof value !== 'function' && typeof value !== 'object') {\n return false;\n }\n\n if (typeof value === 'function' && !value.prototype) {\n return true;\n }\n\n if (hasToStringTag) {\n return tryFunctionObject(value);\n }\n\n if (isES6ClassFn(value)) {\n return false;\n }\n\n var strClass = toStr.call(value);\n return strClass === fnClass || strClass === genClass;\n};","(function (name, context, definition) {\n if (typeof module !== 'undefined' && module.exports) module.exports = definition();else if (typeof define === 'function' && define.amd) define(definition);else context[name] = definition();\n})('urljoin', this, function () {\n function normalize(str, options) {\n // make sure protocol is followed by two slashes\n str = str.replace(/:\\//g, '://'); // remove consecutive slashes\n\n str = str.replace(/([^:\\s])\\/+/g, '$1/'); // remove trailing slash before parameters or hash\n\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1'); // replace ? in parameters with &\n\n str = str.replace(/(\\?.+)\\?/g, '$1&');\n return str;\n }\n\n return function () {\n var input = arguments;\n var options = {};\n\n if (typeof arguments[0] === 'object') {\n // new syntax with array and options\n input = arguments[0];\n options = arguments[1] || {};\n }\n\n var joined = [].slice.call(input, 0).join('/');\n return normalize(joined, options);\n };\n});","'use strict';\n\nvar has = Object.prototype.hasOwnProperty,\n undef;\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input.replace(/\\+/g, ' '));\n } catch (e) {\n return null;\n }\n}\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\n\n\nfunction encode(input) {\n try {\n return encodeURIComponent(input);\n } catch (e) {\n return null;\n }\n}\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\n\n\nfunction querystring(query) {\n var parser = /([^=?&]+)=?([^&]*)/g,\n result = {},\n part;\n\n while (part = parser.exec(query)) {\n var key = decode(part[1]),\n value = decode(part[2]); //\n // Prevent overriding of existing properties. This ensures that build-in\n // methods like `toString` or __proto__ are not overriden by malicious\n // querystrings.\n //\n // In the case if failed decoding, we want to omit the key/value pairs\n // from the result.\n //\n\n if (key === null || value === null || key in result) continue;\n result[key] = value;\n }\n\n return result;\n}\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\n\n\nfunction querystringify(obj, prefix) {\n prefix = prefix || '';\n var pairs = [],\n value,\n key; //\n // Optionally prefix with a '?' if needed\n //\n\n if ('string' !== typeof prefix) prefix = '?';\n\n for (key in obj) {\n if (has.call(obj, key)) {\n value = obj[key]; //\n // Edge cases where we actually want to encode the value to an empty\n // string instead of the stringified value.\n //\n\n if (!value && (value === null || value === undef || isNaN(value))) {\n value = '';\n }\n\n key = encodeURIComponent(key);\n value = encodeURIComponent(value); //\n // If we failed to encode the strings, we should bail out as we don't\n // want to add invalid strings to the query.\n //\n\n if (key === null || value === null) continue;\n pairs.push(key + '=' + value);\n }\n }\n\n return pairs.length ? prefix + pairs.join('&') : '';\n} //\n// Expose the module.\n//\n\n\nexports.stringify = querystringify;\nexports.parse = querystring;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar COMMA_URL_ROOT = exports.COMMA_URL_ROOT = 'https://api.commadotai.com/';\nvar ATHENA_URL_ROOT = exports.ATHENA_URL_ROOT = 'https://athena.comma.ai/';\nvar VIDEO_HOST = exports.VIDEO_HOST = process.env.COMMA_VIDEO_CDN;\n\nif (!VIDEO_HOST) {\n exports.VIDEO_HOST = VIDEO_HOST = 'https://my-comma-video.azureedge.net';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar punycode = require('punycode');\n\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n} // Reference: RFC 3986, RFC 1808, RFC 2396\n// define these here so at least they only have to be\n// compiled once on the first module load.\n\n\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n // Special case for a simple path URL\nsimplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n // RFC 2396: characters reserved for delimiting URLs.\n// We actually just auto-escape these.\ndelims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n // RFC 2396: characters not allowed for various reasons.\nunwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\nautoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n// Note that any invalid chars are also handled, but these\n// are the ones that are *expected* to be seen, so we fast-path\n// them.\nnonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\nunsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that never have a hostname.\nhostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n},\n // protocols that always contain a // bit.\nslashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n},\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n var u = new Url();\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n } // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n\n\n var queryIndex = url.indexOf('?'),\n splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n var rest = url; // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n\n if (simplePath[2]) {\n this.search = simplePath[2];\n\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n } // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n\n\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] && (slashes || proto && !slashedProtocol[proto])) {\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n\n\n var auth, atSign;\n\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n } // Now we have a portion which is definitely the auth.\n // Pull that off.\n\n\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n } // the host is the remaining to the left of the first non-host char\n\n\n hostEnd = -1;\n\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) hostEnd = hec;\n } // if we still have not hit it, then the entire thing is a host.\n\n\n if (hostEnd === -1) hostEnd = rest.length;\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd); // pull out port.\n\n this.parseHost(); // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n\n this.hostname = this.hostname || ''; // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n\n var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']'; // validate a little.\n\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n } // we test again with ASCII char only\n\n\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host; // strip [ and ] from the hostname\n // the host field still retains them, though\n\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n } // now rest is set to the post-host stuff.\n // chop off any delim chars.\n\n\n if (!unsafeProtocol[lowerProto]) {\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1) continue;\n var esc = encodeURIComponent(ae);\n\n if (esc === ae) {\n esc = escape(ae);\n }\n\n rest = rest.split(ae).join(esc);\n }\n } // chop off from the tail first.\n\n\n var hash = rest.indexOf('#');\n\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n\n var qm = rest.indexOf('?');\n\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n\n if (rest) this.pathname = rest;\n\n if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n this.pathname = '/';\n } //to support http.request\n\n\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n } // finally, reconstruct the href based on what has been validated.\n\n\n this.href = this.format();\n return this;\n}; // format a parsed object into a url string\n\n\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function () {\n var auth = this.auth || '';\n\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query && util.isObject(this.query) && Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || query && '?' + query || '';\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'; // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n\n if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n pathname = pathname.replace(/[?#]/g, function (match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n } // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n\n\n result.hash = relative.hash; // if the relative url is empty, then there's nothing left to do here.\n\n if (relative.href === '') {\n result.href = result.format();\n return result;\n } // hrefs like //foo/bar always cut to the protocol.\n\n\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol') result[rkey] = relative[rkey];\n } //urlParse appends trailing / to urls like http://www.example.com\n\n\n if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n\n while (relPath.length && !(relative.host = relPath.shift())) {\n ;\n }\n\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port; // to support http.request\n\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n mustEndAbs = isRelAbs || isSourceAbs || result.host && relative.pathname,\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol]; // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;else srcPath.unshift(result.host);\n }\n\n result.host = '';\n\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;else relPath.unshift(relative.host);\n }\n\n relative.host = null;\n }\n\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = relative.host || relative.host === '' ? relative.host : result.host;\n result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath; // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift(); //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n result.search = relative.search;\n result.query = relative.query; //to support http.request\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null; //to support http.request\n\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n\n result.href = result.format();\n return result;\n } // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n\n\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === ''; // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n\n var up = 0;\n\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && srcPath.join('/').substr(-1) !== '/') {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' || srcPath[0] && srcPath[0].charAt(0) === '/'; // put the host back\n\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' : srcPath.length ? srcPath.shift() : ''; //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n\n var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || result.host && srcPath.length;\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n } //to support request.http\n\n\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n }\n\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function () {\n var host = this.host;\n var port = portPattern.exec(host);\n\n if (port) {\n port = port[0];\n\n if (port !== ':') {\n this.port = port.substr(1);\n }\n\n host = host.substr(0, host.length - port.length);\n }\n\n if (host) this.hostname = host;\n};","export default class BoardUnit {\n constructor(name) {\n this.name = name;\n this.attributes = {};\n this.comment = null;\n }\n\n text() {\n return this.name;\n }\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n\n\nmodule.exports = Readable;\n/*<replacement>*/\n\nvar isArray = require('isarray');\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Duplex;\n/*</replacement>*/\n\nReadable.ReadableState = ReadableState;\n/*<replacement>*/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Stream = require('./internal/streams/stream');\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/*</replacement>*/\n\n/*<replacement>*/\n\n\nvar util = require('core-util-is');\n\nutil.inherits = require('inherits');\n/*</replacement>*/\n\n/*<replacement>*/\n\nvar debugUtil = require('util');\n\nvar debug = void 0;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/*</replacement>*/\n\n\nvar BufferList = require('./internal/streams/BufferList');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar StringDecoder;\nutil.inherits(Readable, Stream);\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n var isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm; // cast to ints.\n\n this.highWaterMark = Math.floor(this.highWaterMark); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n this._readableState = new ReadableState(options, this); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n\n return er;\n} // if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\n\n\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n}; // Don't raise the hwm > 8MB\n\n\nvar MAX_HWM = 0x800000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true; // emit 'readable' now to make sure it gets picked up.\n\n emitReadable(stream);\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n } // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n\n\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {}\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList; // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n return ret;\n} // Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n\n return ret;\n} // Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\n} // Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState; // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\n}","module.exports = require('events').EventEmitter;","'use strict';\n/*<replacement>*/\n\nvar pna = require('process-nextick-args');\n/*</replacement>*/\n// undocumented cb() API, needed for core, not for public API\n\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n/*<replacement>*/\n\nvar Buffer = require('safe-buffer').Buffer;\n/*</replacement>*/\n\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n case 'raw':\n return true;\n\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n\n case 'latin1':\n case 'binary':\n return 'latin1';\n\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n\n default:\n if (retried) return; // undefined\n\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n}\n\n; // Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\n\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n} // StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\n\n\nexports.StringDecoder = StringDecoder;\n\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End; // Returns only complete characters in a Buffer\n\nStringDecoder.prototype.text = utf8Text; // Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\n\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n}; // Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\n\n\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n} // Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\n\n\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n\n return nb;\n }\n\n return 0;\n} // Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\n\n\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return \"\\uFFFD\";\n }\n\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return \"\\uFFFD\";\n }\n }\n }\n} // Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\n\n\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n} // Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\n\n\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n} // For UTF-8, a replacement character is added when ending on a partial\n// character.\n\n\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + \"\\uFFFD\";\n return r;\n} // UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\n\n\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n\n return r;\n }\n\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n} // For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\n\n\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n} // Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\n\n\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n/*<replacement>*/\n\n\nvar util = require('core-util-is');\n\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n return stream.push(null);\n}","\"use strict\";\n\nmodule.exports = {\n readMessage: readMessage,\n readSize: readSize\n};\n\nfunction readSize(buf, offset) {\n offset = offset || 0;\n\n if (offset + 8 >= buf.byteLength) {\n return null;\n }\n\n var localIndex = 0;\n var segments = buf.readUInt32LE(offset) + 1;\n localIndex = 0;\n var sizeArr = [];\n\n for (var i = 0; i < segments; ++i) {\n localIndex += 4;\n var segSize = buf.readUInt32LE(offset + localIndex);\n sizeArr.push(segSize * 8);\n }\n\n var size = sizeArr.reduce(function (memo, val) {\n return memo + val;\n }, localIndex); // round size to the word boundary, that reduce statement already took into account header size\n\n size += 8 - size % 8;\n return size;\n}\n\nfunction readMessage(buf, offset) {\n offset = offset || 0;\n var size = readSize(buf, offset);\n return buf.slice(offset, offset + size);\n}","var capnp = require('capnp-ts');\n\nvar partial = require('ap').partial;\n\nvar Log = require('../capnp/log.capnp');\n\nvar toJSON = require('@commaai/capnp-json');\n\nvar CapnpEvent = Log.Event;\nmodule.exports = Event;\n\nfunction Event(buf) {\n // force usage of new\n if (!(this instanceof Event)) {\n return new Event(buf);\n }\n\n this.msg = new capnp.Message(buf, false);\n this.event = this.msg.getRoot(CapnpEvent);\n this.toJSON = partial(toJSON, this.event);\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../../constants\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar util_1 = require(\"../../util\");\n\nvar arena_allocation_result_1 = require(\"./arena-allocation-result\");\n\nvar arena_kind_1 = require(\"./arena-kind\");\n\nvar trace = debug_1.default('capnp:arena:multi');\ntrace('load');\n\nvar MultiSegmentArena =\n/** @class */\nfunction () {\n function MultiSegmentArena(buffers) {\n if (buffers === void 0) {\n buffers = [];\n }\n\n this.kind = arena_kind_1.ArenaKind.MULTI_SEGMENT;\n this.buffers = buffers;\n trace('new %s', this);\n }\n\n MultiSegmentArena.prototype.toString = function () {\n return util_1.format('MultiSegmentArena_segments:%d', getNumSegments(this));\n };\n\n MultiSegmentArena.allocate = allocate;\n MultiSegmentArena.getBuffer = getBuffer;\n MultiSegmentArena.getNumSegments = getNumSegments;\n return MultiSegmentArena;\n}();\n\nexports.MultiSegmentArena = MultiSegmentArena;\n\nfunction allocate(minSize, m) {\n var b = new ArrayBuffer(util_1.padToWord(Math.max(minSize, constants_1.DEFAULT_BUFFER_SIZE)));\n m.buffers.push(b);\n return new arena_allocation_result_1.ArenaAllocationResult(m.buffers.length - 1, b);\n}\n\nexports.allocate = allocate;\n\nfunction getBuffer(id, m) {\n if (id < 0 || id >= m.buffers.length) throw new Error(util_1.format(errors_1.SEG_ID_OUT_OF_BOUNDS, id));\n return m.buffers[id];\n}\n\nexports.getBuffer = getBuffer;\n\nfunction getNumSegments(m) {\n return m.buffers.length;\n}\n\nexports.getNumSegments = getNumSegments;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar trace = debug_1.default('capnp:serialization:arena:arena-allocation-result');\ntrace('load');\n\nvar ArenaAllocationResult =\n/** @class */\nfunction () {\n function ArenaAllocationResult(id, buffer) {\n this.id = id;\n this.buffer = buffer;\n trace('new', this);\n }\n\n return ArenaAllocationResult;\n}();\n\nexports.ArenaAllocationResult = ArenaAllocationResult;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../../constants\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar util_1 = require(\"../../util\");\n\nvar arena_allocation_result_1 = require(\"./arena-allocation-result\");\n\nvar arena_kind_1 = require(\"./arena-kind\");\n\nvar trace = debug_1.default('capnp:arena:single');\ntrace('load');\n\nvar SingleSegmentArena =\n/** @class */\nfunction () {\n function SingleSegmentArena(buffer) {\n if (buffer === void 0) {\n buffer = new ArrayBuffer(constants_1.DEFAULT_BUFFER_SIZE);\n }\n\n this.kind = arena_kind_1.ArenaKind.SINGLE_SEGMENT;\n if ((buffer.byteLength & 7) !== 0) throw new Error(util_1.format(errors_1.SEG_NOT_WORD_ALIGNED, buffer.byteLength));\n this.buffer = buffer;\n trace('new %s', this);\n }\n\n SingleSegmentArena.prototype.toString = function () {\n return util_1.format('SingleSegmentArena_len:%x', this.buffer.byteLength);\n };\n\n SingleSegmentArena.allocate = allocate;\n SingleSegmentArena.getBuffer = getBuffer;\n SingleSegmentArena.getNumSegments = getNumSegments;\n return SingleSegmentArena;\n}();\n\nexports.SingleSegmentArena = SingleSegmentArena;\n\nfunction allocate(minSize, segments, s) {\n trace('Allocating %x bytes for segment 0 in %s.', minSize, s);\n var srcBuffer = segments.length > 0 ? segments[0].buffer : s.buffer;\n\n if (minSize < constants_1.MIN_SINGLE_SEGMENT_GROWTH) {\n minSize = constants_1.MIN_SINGLE_SEGMENT_GROWTH;\n } else {\n minSize = util_1.padToWord(minSize);\n }\n\n s.buffer = new ArrayBuffer(srcBuffer.byteLength + minSize); // PERF: Assume that the source and destination buffers are word-aligned and use Float64Array to copy them one word\n // at a time.\n\n new Float64Array(s.buffer).set(new Float64Array(srcBuffer));\n return new arena_allocation_result_1.ArenaAllocationResult(0, s.buffer);\n}\n\nexports.allocate = allocate;\n\nfunction getBuffer(id, s) {\n if (id !== 0) throw new Error(util_1.format(errors_1.SEG_GET_NON_ZERO_SINGLE, id));\n return s.buffer;\n}\n\nexports.getBuffer = getBuffer;\n\nfunction getNumSegments() {\n return 1;\n}\n\nexports.getNumSegments = getNumSegments;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar util_1 = require(\"../../util\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar object_size_1 = require(\"../object-size\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar pointer_type_1 = require(\"./pointer-type\");\n\nvar trace = debug_1.default('capnp:orphan');\ntrace('load'); // Technically speaking this class doesn't need to be generic, but the extra type checking enforced by this helps to\n// make sure you don't accidentally adopt a pointer of the wrong type.\n\n/**\n * An orphaned pointer. This object itself is technically a pointer to the original pointer's content, which was left\n * untouched in its original message. The original pointer data is encoded as attributes on the Orphan object, ready to\n * be reconstructed once another pointer is ready to adopt it.\n *\n * @export\n * @class Orphan\n * @extends {Pointer}\n * @template T\n */\n\nvar Orphan =\n/** @class */\nfunction () {\n function Orphan(src) {\n var c = pointer_1.getContent(src);\n this.segment = c.segment;\n this.byteOffset = c.byteOffset;\n this._capnp = {}; // Read vital info from the src pointer so we can reconstruct it during adoption.\n\n this._capnp.type = pointer_1.getTargetPointerType(src);\n\n switch (this._capnp.type) {\n case pointer_type_1.PointerType.STRUCT:\n this._capnp.size = pointer_1.getTargetStructSize(src);\n break;\n\n case pointer_type_1.PointerType.LIST:\n this._capnp.length = pointer_1.getTargetListLength(src);\n this._capnp.elementSize = pointer_1.getTargetListElementSize(src);\n if (this._capnp.elementSize === list_element_size_1.ListElementSize.COMPOSITE) this._capnp.size = pointer_1.getTargetCompositeListSize(src);\n break;\n\n case pointer_type_1.PointerType.OTHER:\n this._capnp.capId = pointer_1.getCapabilityId(src);\n break;\n\n default:\n // COVERAGE: Unreachable code.\n\n /* istanbul ignore next */\n throw new Error(errors_1.PTR_INVALID_POINTER_TYPE);\n } // Zero out the source pointer (but not the contents!).\n\n\n pointer_1.erasePointer(src);\n }\n /**\n * Adopt (move) this orphan into the target pointer location. This will allocate far pointers in `dst` as needed.\n *\n * @param {T} dst The destination pointer.\n * @returns {void}\n */\n\n\n Orphan.prototype._moveTo = function (dst) {\n if (this._capnp === undefined) throw new Error(util_1.format(errors_1.PTR_ALREADY_ADOPTED, this)); // TODO: Implement copy semantics when this happens.\n\n if (this.segment.message !== dst.segment.message) throw new Error(util_1.format(errors_1.PTR_ADOPT_WRONG_MESSAGE, this, dst)); // Recursively wipe out the destination pointer first.\n\n pointer_1.erase(dst);\n var res = pointer_1.initPointer(this.segment, this.byteOffset, dst);\n\n switch (this._capnp.type) {\n case pointer_type_1.PointerType.STRUCT:\n pointer_1.setStructPointer(res.offsetWords, this._capnp.size, res.pointer);\n break;\n\n case pointer_type_1.PointerType.LIST:\n var offsetWords = res.offsetWords;\n if (this._capnp.elementSize === list_element_size_1.ListElementSize.COMPOSITE) offsetWords--; // The tag word gets skipped.\n\n pointer_1.setListPointer(offsetWords, this._capnp.elementSize, this._capnp.length, res.pointer, this._capnp.size);\n break;\n\n case pointer_type_1.PointerType.OTHER:\n pointer_1.setInterfacePointer(this._capnp.capId, res.pointer);\n break;\n\n /* istanbul ignore next */\n\n default:\n throw new Error(errors_1.PTR_INVALID_POINTER_TYPE);\n }\n\n this._capnp = undefined;\n };\n\n Orphan.prototype.dispose = function () {\n // FIXME: Should this throw?\n if (this._capnp === undefined) {\n trace('not disposing an already disposed orphan', this);\n return;\n }\n\n switch (this._capnp.type) {\n case pointer_type_1.PointerType.STRUCT:\n this.segment.fillZeroWords(this.byteOffset, object_size_1.getWordLength(this._capnp.size));\n break;\n\n case pointer_type_1.PointerType.LIST:\n var byteLength = pointer_1.getListByteLength(this._capnp.elementSize, this._capnp.length, this._capnp.size);\n this.segment.fillZeroWords(this.byteOffset, byteLength);\n break;\n\n default:\n // Other pointer types don't actually have any content.\n break;\n }\n\n this._capnp = undefined;\n };\n\n Orphan.prototype.toString = function () {\n return util_1.format('Orphan_%d@%a,type:%s', this.segment.id, this.byteOffset, this._capnp && this._capnp.type);\n };\n\n return Orphan;\n}();\n\nexports.Orphan = Orphan;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar constants_1 = require(\"../../constants\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar util_1 = require(\"../../util\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar Interface =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Interface, _super);\n\n function Interface(segment, byteOffset, depthLimit) {\n if (depthLimit === void 0) {\n depthLimit = constants_1.MAX_DEPTH;\n }\n\n var _this = _super.call(this, segment, byteOffset, depthLimit) || this;\n\n throw new Error(util_1.format(errors_1.NOT_IMPLEMENTED, 'new Interface'));\n return _this;\n }\n\n return Interface;\n}(pointer_1.Pointer);\n\nexports.Interface = Interface;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../constants\");\n\nvar errors_1 = require(\"../errors\");\n\nvar util_1 = require(\"../util\");\n\nvar trace = debug_1.default('capnp:uint64');\ntrace('load');\n/**\n * Represents an unsigned 64-bit integer stored using a Uint8Array in little-endian format. It's a little bit faster\n * than int64 because we don't need to keep track of the sign bit or perform two's compliment operations on set.\n *\n * You may convert this to a primitive number by calling `toNumber()` but be wary of precision loss!\n *\n * Note that overflow is not implemented, so negative numbers passed into `setValue()` will be negated first.\n *\n * The value passed in as the source buffer is expected to be in little-endian format.\n */\n\nvar Uint64 =\n/** @class */\nfunction () {\n /**\n * Creates a new instance; this is a no-frills constructor for speed. Use the factory methods if you need to convert\n * from other types or use a different offset into the buffer.\n *\n * Will throw if the buffer is not at least 8 bytes long.\n *\n * @constructor\n * @param {Uint8Array} buffer The buffer to use for this 64-bit word; the bytes must be in little-endian order.\n */\n function Uint64(buffer) {\n if (buffer.byteLength < 8) throw new RangeError(errors_1.RANGE_INT64_UNDERFLOW);\n this.buffer = buffer;\n }\n\n Uint64.fromArrayBuffer = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(new Uint8Array(source, offset, 8));\n return new this(new Uint8Array(source.slice(offset, offset + 8)));\n };\n\n Uint64.fromDataView = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(new Uint8Array(source.buffer, source.byteOffset + offset, 8));\n return new this(new Uint8Array(source.buffer.slice(source.byteOffset + offset, source.byteLength + offset + 8)));\n };\n /**\n * Parse a hexadecimal string in **big endian format** as a Uint64 value.\n *\n * @static\n * @param {string} source The source string.\n * @returns {Uint64} The string parsed as a 64-bit unsigned integer.\n */\n\n\n Uint64.fromHexString = function (source) {\n if (source.substr(0, 2) === '0x') source = source.substr(2);\n if (source.length < 1) return Uint64.fromNumber(0);\n if (source[0] === '-') throw new RangeError('Source must not be negative.');\n source = util_1.pad(source, 16);\n if (source.length !== 16) throw new RangeError('Source string must contain at most 16 hexadecimal digits.');\n var bytes = source.toLowerCase().replace(/[^\\da-f]/g, '');\n var buf = new Uint8Array(new ArrayBuffer(8));\n\n for (var i = 0; i < 8; i++) {\n buf[7 - i] = parseInt(bytes.substr(i * 2, 2), 16);\n }\n\n return new Uint64(buf);\n };\n\n Uint64.fromNumber = function (source) {\n var ret = new this(new Uint8Array(8));\n ret.setValue(source);\n return ret;\n };\n\n Uint64.fromUint8Array = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(source.subarray(offset, offset + 8));\n return new this(new Uint8Array(source.buffer.slice(source.byteOffset + offset, source.byteOffset + offset + 8)));\n };\n\n Uint64.prototype.equals = function (other) {\n for (var i = 0; i < 8; i++) {\n if (this.buffer[i] !== other.buffer[i]) return false;\n }\n\n return true;\n };\n\n Uint64.prototype.inspect = function () {\n return \"[Uint64 \" + this.toString(10) + \" 0x\" + this.toHexString() + \"]\";\n };\n /**\n * Faster way to check for zero values without converting to a number first.\n *\n * @returns {boolean} `true` if the contained value is zero.\n * @memberOf Uint64\n */\n\n\n Uint64.prototype.isZero = function () {\n for (var i = 0; i < 8; i++) {\n if (this.buffer[i] !== 0) return false;\n }\n\n return true;\n };\n\n Uint64.prototype.setValue = function (loWord, hiWord) {\n var lo = loWord;\n var hi = hiWord;\n\n if (hi === undefined) {\n hi = lo;\n hi = Math.abs(hi);\n lo = hi % constants_1.VAL32;\n hi = hi / constants_1.VAL32;\n if (hi > constants_1.VAL32) throw new RangeError(loWord + \" is outside Uint64 range\");\n hi = hi >>> 0;\n }\n\n for (var i = 0; i < 8; i++) {\n this.buffer[i] = lo & 0xff;\n lo = i === 3 ? hi : lo >>> 8;\n }\n };\n /**\n * Convert to a native javascript number.\n *\n * WARNING: do not expect this number to be accurate to integer precision for large (positive or negative) numbers!\n *\n * @param {boolean} allowImprecise If `true`, no check is performed to verify the returned value is accurate;\n * otherwise out-of-range values are clamped to +Infinity.\n * @returns {number} A numeric representation of this integer.\n */\n\n\n Uint64.prototype.toNumber = function (allowImprecise) {\n var b = this.buffer;\n var x = 0;\n var i = 0;\n var m = 1;\n\n while (i < 8) {\n var v = b[i];\n x += v * m;\n m *= 256;\n i++;\n }\n\n if (!allowImprecise && x >= constants_1.MAX_SAFE_INTEGER) {\n trace('Coercing out of range value %d to Infinity.', x);\n return Infinity;\n }\n\n return x;\n };\n\n Uint64.prototype.valueOf = function () {\n return this.toNumber(false);\n };\n\n Uint64.prototype.toArrayBuffer = function () {\n return this.buffer.buffer;\n };\n\n Uint64.prototype.toDataView = function () {\n return new DataView(this.buffer.buffer);\n };\n\n Uint64.prototype.toHexString = function () {\n var hex = '';\n\n for (var i = 7; i >= 0; i--) {\n var v = this.buffer[i].toString(16);\n if (v.length === 1) v = '0' + v;\n hex += v;\n }\n\n return hex;\n };\n\n Uint64.prototype.toString = function (radix) {\n return this.toNumber(true).toString(radix);\n };\n\n Uint64.prototype.toUint8Array = function () {\n return this.buffer;\n };\n\n return Uint64;\n}();\n\nexports.Uint64 = Uint64;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar object_size_1 = require(\"../object-size\");\n\nvar struct_1 = require(\"./struct\");\n\nvar Void =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Void, _super);\n\n function Void() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Void._capnp = {\n displayName: 'Void',\n id: '0',\n size: new object_size_1.ObjectSize(0, 0)\n };\n return Void;\n}(struct_1.Struct);\n\nexports.Void = Void; // This following line makes a mysterious \"whooshing\" sound when it runs.\n\nexports.VOID = undefined;","module.exports = Event;\n\nfunction Event() {\n var listeners = [];\n return {\n broadcast: broadcast,\n listen: event\n };\n\n function broadcast(value) {\n var listenersCopy = listeners.slice();\n\n for (var i = 0; i < listenersCopy.length; i++) {\n if (!listenersCopy[i].deleted) {\n listenersCopy[i].fn(value);\n }\n }\n }\n\n function event(listener) {\n listeners.push(new ListItem(listener));\n return removeListener;\n\n function removeListener() {\n for (var i = 0; i < listeners.length; i++) {\n if (listeners[i].fn === listener) {\n listeners[i].deleted = true;\n listeners.splice(i, 1);\n break;\n }\n }\n }\n }\n}\n\nfunction ListItem(fn) {\n this.fn = fn;\n this.deleted = false;\n}","var Transform = require('readable-stream').Transform,\n inherits = require('util').inherits,\n xtend = require('xtend');\n\nfunction DestroyableTransform(opts) {\n Transform.call(this, opts);\n this._destroyed = false;\n}\n\ninherits(DestroyableTransform, Transform);\n\nDestroyableTransform.prototype.destroy = function (err) {\n if (this._destroyed) return;\n this._destroyed = true;\n var self = this;\n process.nextTick(function () {\n if (err) self.emit('error', err);\n self.emit('close');\n });\n}; // a noop _transform function\n\n\nfunction noop(chunk, enc, callback) {\n callback(null, chunk);\n} // create a new export function, used by both the main export and\n// the .ctor export, contains common logic for dealing with arguments\n\n\nfunction through2(construct) {\n return function (options, transform, flush) {\n if (typeof options == 'function') {\n flush = transform;\n transform = options;\n options = {};\n }\n\n if (typeof transform != 'function') transform = noop;\n if (typeof flush != 'function') flush = null;\n return construct(options, transform, flush);\n };\n} // main export, just make me a transform stream!\n\n\nmodule.exports = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(options);\n t2._transform = transform;\n if (flush) t2._flush = flush;\n return t2;\n}); // make me a reusable prototype that I can `new`, or implicitly `new`\n// with a constructor call\n\nmodule.exports.ctor = through2(function (options, transform, flush) {\n function Through2(override) {\n if (!(this instanceof Through2)) return new Through2(override);\n this.options = xtend(options, override);\n DestroyableTransform.call(this, this.options);\n }\n\n inherits(Through2, DestroyableTransform);\n Through2.prototype._transform = transform;\n if (flush) Through2.prototype._flush = flush;\n return Through2;\n});\nmodule.exports.obj = through2(function (options, transform, flush) {\n var t2 = new DestroyableTransform(xtend({\n objectMode: true,\n highWaterMark: 16\n }, options));\n t2._transform = transform;\n if (flush) t2._flush = flush;\n return t2;\n});","'use strict';\n\nvar objectAssign = require('object-assign'); // compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n// original notice:\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\n\nfunction compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n}\n\nfunction isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n\n return !!(b != null && b._isBuffer);\n} // based on node assert, original notice:\n// NB: The URL to the CommonJS spec is kept just for tradition.\n// node-assert has evolved a lot since then, both in API and behavior.\n// http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n//\n// THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n//\n// Originally from narwhal.js (http://narwhaljs.org)\n// Copyright (c) 2009 Thomas Robinson <280north.com>\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the 'Software'), to\n// deal in the Software without restriction, including without limitation the\n// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n// sell copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n// ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\nvar util = require('util/');\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar pSlice = Array.prototype.slice;\n\nvar functionsHaveNames = function () {\n return function foo() {}.name === 'foo';\n}();\n\nfunction pToString(obj) {\n return Object.prototype.toString.call(obj);\n}\n\nfunction isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n\n if (!arrbuf) {\n return false;\n }\n\n if (arrbuf instanceof DataView) {\n return true;\n }\n\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n\n return false;\n} // 1. The assert module provides functions that throw\n// AssertionError's when particular conditions are not met. The\n// assert module must conform to the following interface.\n\n\nvar assert = module.exports = ok; // 2. The AssertionError is defined in assert.\n// new assert.AssertionError({ message: message,\n// actual: actual,\n// expected: expected })\n\nvar regex = /\\s*function\\s+([^\\(\\s]*)\\s*/; // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\n\nfunction getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n\n if (functionsHaveNames) {\n return func.name;\n }\n\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n}\n\nassert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n\n var stackStartFunction = options.stackStartFunction || fail;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n\n if (err.stack) {\n var out = err.stack; // try to strip useless frames\n\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n}; // assert.AssertionError instanceof Error\n\n\nutil.inherits(assert.AssertionError, Error);\n\nfunction truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n}\n\nfunction inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n}\n\nfunction getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' + self.operator + ' ' + truncate(inspect(self.expected), 128);\n} // At present only the three keys mentioned above are used and\n// understood by the spec. Implementations or sub modules can pass\n// other keys to the AssertionError's constructor - they will be\n// ignored.\n// 3. All of the following functions must throw an AssertionError\n// when a corresponding condition is not met, with a message that\n// may be undefined if not provided. All assertion methods provide\n// both the actual and expected values to the assertion error for\n// display purposes.\n\n\nfunction fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n} // EXTENSION! allows for well behaved errors defined elsewhere.\n\n\nassert.fail = fail; // 4. Pure assertion tests whether a value is truthy, as determined\n// by !!guard.\n// assert.ok(guard, message_opt);\n// This statement is equivalent to assert.equal(true, !!guard,\n// message_opt);. To test strictly for the value true, use\n// assert.strictEqual(true, guard, message_opt);.\n\nfunction ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n}\n\nassert.ok = ok; // 5. The equality assertion tests shallow, coercive equality with\n// ==.\n// assert.equal(actual, expected, message_opt);\n\nassert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n}; // 6. The non-equality assertion tests for whether two objects are not equal\n// with != assert.notEqual(actual, expected, message_opt);\n\n\nassert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n}; // 7. The equivalence assertion tests a deep equality relation.\n// assert.deepEqual(actual, expected, message_opt);\n\n\nassert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n};\n\nassert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n};\n\nfunction _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0; // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime(); // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source && actual.global === expected.global && actual.multiline === expected.multiline && actual.lastIndex === expected.lastIndex && actual.ignoreCase === expected.ignoreCase; // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') && (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected; // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) && pToString(actual) === pToString(expected) && !(actual instanceof Float32Array || actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer), new Uint8Array(expected.buffer)) === 0; // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {\n actual: [],\n expected: []\n };\n var actualIndex = memos.actual.indexOf(actual);\n\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n return objEquiv(actual, expected, strict, memos);\n }\n}\n\nfunction isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n}\n\nfunction objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined) return false; // if one is a primitive, the other must be same\n\n if (util.isPrimitive(a) || util.isPrimitive(b)) return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if (aIsArgs && !bIsArgs || !aIsArgs && bIsArgs) return false;\n\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i; // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n\n if (ka.length !== kb.length) return false; //the same set of keys (although not necessarily the same order),\n\n ka.sort();\n kb.sort(); //~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i]) return false;\n } //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects)) return false;\n }\n\n return true;\n} // 8. The non-equivalence assertion tests for any deep inequality.\n// assert.notDeepEqual(actual, expected, message_opt);\n\n\nassert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n};\n\nassert.notDeepStrictEqual = notDeepStrictEqual;\n\nfunction notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n} // 9. The strict equality assertion tests strict equality, as determined by ===.\n// assert.strictEqual(actual, expected, message_opt);\n\n\nassert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n}; // 10. The strict non-equality assertion tests for strict inequality, as\n// determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\n\nassert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n};\n\nfunction expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {// Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n}\n\nfunction _tryBlock(block) {\n var error;\n\n try {\n block();\n } catch (e) {\n error = e;\n }\n\n return error;\n}\n\nfunction _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if (isUnwantedException && userProvidedMessage && expectedException(actual, expected) || isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if (shouldThrow && actual && expected && !expectedException(actual, expected) || !shouldThrow && actual) {\n throw actual;\n }\n} // 11. Expected to throw an error:\n// assert.throws(block, Error_opt, message_opt);\n\n\nassert.throws = function (block,\n/*optional*/\nerror,\n/*optional*/\nmessage) {\n _throws(true, block, error, message);\n}; // EXTENSION! This is annoying to write outside this module.\n\n\nassert.doesNotThrow = function (block,\n/*optional*/\nerror,\n/*optional*/\nmessage) {\n _throws(false, block, error, message);\n};\n\nassert.ifError = function (err) {\n if (err) throw err;\n}; // Expose a strict only variant of assert\n\n\nfunction strict(value, message) {\n if (!value) fail(value, true, message, '==', strict);\n}\n\nassert.strict = objectAssign(strict, assert, {\n equal: assert.strictEqual,\n deepEqual: assert.deepStrictEqual,\n notEqual: assert.notStrictEqual,\n notDeepEqual: assert.notDeepStrictEqual\n});\nassert.strict.strict = assert.strict;\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n\n return keys;\n};","'use strict'; // Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = adler & 0xffff | 0,\n s2 = adler >>> 16 & 0xffff | 0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = s1 + buf[pos++] | 0;\n s2 = s2 + s1 | 0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return s1 | s2 << 16 | 0;\n}\n\nmodule.exports = adler32;","'use strict'; // Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n// Use ordinary array, since untyped makes no boost here\n\nfunction makeTable() {\n var c,\n table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xEDB88320 ^ c >>> 1 : c >>> 1;\n }\n\n table[n] = c;\n }\n\n return table;\n} // Create table on load. Just 255 signed longs. Not a problem.\n\n\nvar crcTable = makeTable();\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable,\n end = pos + len;\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = crc >>> 8 ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return crc ^ -1; // >>> 0;\n}\n\nmodule.exports = crc32;","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","'use strict';\n\nvar LIBRARY = require('./_library');\n\nvar $export = require('./_export');\n\nvar redefine = require('./_redefine');\n\nvar hide = require('./_hide');\n\nvar Iterators = require('./_iterators');\n\nvar $iterCreate = require('./_iter-create');\n\nvar setToStringTag = require('./_set-to-string-tag');\n\nvar getPrototypeOf = require('./_object-gpo');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\n\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function returnThis() {\n return this;\n};\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n\n var getMethod = function getMethod(kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n\n switch (kind) {\n case KEYS:\n return function keys() {\n return new Constructor(this, kind);\n };\n\n case VALUES:\n return function values() {\n return new Constructor(this, kind);\n };\n }\n\n return function entries() {\n return new Constructor(this, kind);\n };\n };\n\n var TAG = NAME + ' Iterator';\n var DEF_VALUES = DEFAULT == VALUES;\n var VALUES_BUG = false;\n var proto = Base.prototype;\n var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];\n var $default = $native || getMethod(DEFAULT);\n var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;\n var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;\n var methods, key, IteratorPrototype; // Fix native\n\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines\n\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n } // fix Array#{values, @@iterator}.name in V8 / FF\n\n\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n\n $default = function values() {\n return $native.call(this);\n };\n } // Define iterator\n\n\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n } // Plug for library\n\n\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n\n if (DEFAULT) {\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if (FORCED) for (key in methods) {\n if (!(key in proto)) redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n\n return methods;\n};","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};","var core = require('./_core');\n\nvar global = require('./_global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});","var id = 0;\nvar px = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};","// IE 8- don't enum bug keys\nmodule.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');","var document = require('./_global').document;\n\nmodule.exports = document && document.documentElement;","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\n\nmodule.exports = function (it) {\n return Object(defined(it));\n};","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\n\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value); // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};","// check on default Array iterator\nvar Iterators = require('./_iterators');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\n\nvar aFunction = require('./_a-function');\n\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (O, D) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);\n};","var ctx = require('./_ctx');\n\nvar invoke = require('./_invoke');\n\nvar html = require('./_html');\n\nvar cel = require('./_dom-create');\n\nvar global = require('./_global');\n\nvar process = global.process;\nvar setTask = global.setImmediate;\nvar clearTask = global.clearImmediate;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function run() {\n var id = +this; // eslint-disable-next-line no-prototype-builtins\n\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar listener = function listener(event) {\n run.call(event.data);\n}; // Node.js 0.9+ & IE10+ has setImmediate, otherwise:\n\n\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n\n while (arguments.length > i) {\n args.push(arguments[i++]);\n }\n\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n invoke(typeof fn == 'function' ? fn : Function(fn), args);\n };\n\n defer(counter);\n return counter;\n };\n\n clearTask = function clearImmediate(id) {\n delete queue[id];\n }; // Node.js 0.8-\n\n\n if (require('./_cof')(process) == 'process') {\n defer = function defer(id) {\n process.nextTick(ctx(run, id, 1));\n }; // Sphere (JS game engine) Dispatch API\n\n } else if (Dispatch && Dispatch.now) {\n defer = function defer(id) {\n Dispatch.now(ctx(run, id, 1));\n }; // Browsers with MessageChannel, includes WebWorkers\n\n } else if (MessageChannel) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = ctx(port.postMessage, port, 1); // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function defer(id) {\n global.postMessage(id + '', '*');\n };\n\n global.addEventListener('message', listener, false); // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function defer(id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n }; // Rest old browsers\n\n } else {\n defer = function defer(id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\n\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};","module.exports = function (exec) {\n try {\n return {\n e: false,\n v: exec()\n };\n } catch (e) {\n return {\n e: true,\n v: e\n };\n }\n};","var anObject = require('./_an-object');\n\nvar isObject = require('./_is-object');\n\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};","var ITERATOR = require('./_wks')('iterator');\n\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n\n riter['return'] = function () {\n SAFE_CLOSING = true;\n }; // eslint-disable-next-line no-throw-literal\n\n\n Array.from(riter, function () {\n throw 2;\n });\n} catch (e) {\n /* empty */\n}\n\nmodule.exports = function (exec, skipClosing) {\n if (!skipClosing && !SAFE_CLOSING) return false;\n var safe = false;\n\n try {\n var arr = [7];\n var iter = arr[ITERATOR]();\n\n iter.next = function () {\n return {\n done: safe = true\n };\n };\n\n arr[ITERATOR] = function () {\n return iter;\n };\n\n exec(arr);\n } catch (e) {\n /* empty */\n }\n\n return safe;\n};","'use strict';\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase();\n });\n};","module.exports = isFunction;\nvar toString = Object.prototype.toString;\n\nfunction isFunction(fn) {\n var string = toString.call(fn);\n return string === '[object Function]' || typeof fn === 'function' && string !== '[object RegExp]' || typeof window !== 'undefined' && ( // IE8 and below\n fn === window.setTimeout || fn === window.alert || fn === window.confirm || fn === window.prompt);\n}\n\n;","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar ES = require('es-abstract/es5');\n\nvar replace = bind.call(Function.call, String.prototype.replace);\n/* eslint-disable no-control-regex */\n\nvar leftWhitespace = /^[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+/;\nvar rightWhitespace = /[\\x09\\x0A\\x0B\\x0C\\x0D\\x20\\xA0\\u1680\\u180E\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF]+$/;\n/* eslint-enable no-control-regex */\n\nmodule.exports = function trim() {\n var S = ES.ToString(ES.CheckObjectCoercible(this));\n return replace(replace(S, leftWhitespace, ''), rightWhitespace, '');\n};","'use strict';\n\nvar implementation = require('./implementation');\n\nvar zeroWidthSpace = \"\\u200B\";\n\nmodule.exports = function getPolyfill() {\n if (String.prototype.trim && zeroWidthSpace.trim() === zeroWidthSpace) {\n return String.prototype.trim;\n }\n\n return implementation;\n};","module.exports = extend;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n}","'use strict';\n\nmodule.exports = function isErrorCode(code) {\n return code < 200 || code >= 400;\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/number/is-finite\"),\n __esModule: true\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _promise = require('babel-runtime/core-js/promise');\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nexports.default = ConfigRequestPromise;\n\nvar _instance = require('config-request/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _errorHandler = require('./errorHandler');\n\nvar _errorHandler2 = _interopRequireDefault(_errorHandler);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction ConfigRequestPromise() {\n var cr = (0, _instance2.default)();\n var origGet = cr.get,\n origPost = cr.post,\n origPatch = cr.patch;\n cr.get = wrap(cr.get.bind(cr));\n cr.post = wrap(cr.post.bind(cr));\n cr.patch = wrap(cr.patch.bind(cr));\n return cr;\n}\n\nvar wrap = function wrap(requestFunc) {\n return function (path, options) {\n return new _promise2.default(function (resolve, reject) {\n requestFunc(path, options || {}, (0, _errorHandler2.default)(resolve, reject));\n });\n };\n};","var topLevel = typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : {};\n\nvar minDoc = require('min-document');\n\nvar doccy;\n\nif (typeof document !== 'undefined') {\n doccy = document;\n} else {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];\n\n if (!doccy) {\n doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;\n }\n}\n\nmodule.exports = doccy;","var ClientRequest = require('./lib/request');\n\nvar response = require('./lib/response');\n\nvar extend = require('xtend');\n\nvar statusCodes = require('builtin-status-codes');\n\nvar url = require('url');\n\nvar http = exports;\n\nhttp.request = function (opts, cb) {\n if (typeof opts === 'string') opts = url.parse(opts);else opts = extend(opts); // Normally, the page is loaded from http or https, so not specifying a protocol\n // will result in a (valid) protocol-relative url. However, this won't work if\n // the protocol is something else, like 'file:'\n\n var defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '';\n var protocol = opts.protocol || defaultProtocol;\n var host = opts.hostname || opts.host;\n var port = opts.port;\n var path = opts.path || '/'; // Necessary for IPv6 addresses\n\n if (host && host.indexOf(':') !== -1) host = '[' + host + ']'; // This may be a relative url. The browser should always be able to interpret it correctly.\n\n opts.url = (host ? protocol + '//' + host : '') + (port ? ':' + port : '') + path;\n opts.method = (opts.method || 'GET').toUpperCase();\n opts.headers = opts.headers || {}; // Also valid opts.auth, opts.mode\n\n var req = new ClientRequest(opts);\n if (cb) req.on('response', cb);\n return req;\n};\n\nhttp.get = function get(opts, cb) {\n var req = http.request(opts, cb);\n req.end();\n return req;\n};\n\nhttp.ClientRequest = ClientRequest;\nhttp.IncomingMessage = response.IncomingMessage;\n\nhttp.Agent = function () {};\n\nhttp.Agent.defaultMaxSockets = 4;\nhttp.globalAgent = new http.Agent();\nhttp.STATUS_CODES = statusCodes;\nhttp.METHODS = ['CHECKOUT', 'CONNECT', 'COPY', 'DELETE', 'GET', 'HEAD', 'LOCK', 'M-SEARCH', 'MERGE', 'MKACTIVITY', 'MKCOL', 'MOVE', 'NOTIFY', 'OPTIONS', 'PATCH', 'POST', 'PROPFIND', 'PROPPATCH', 'PURGE', 'PUT', 'REPORT', 'SEARCH', 'SUBSCRIBE', 'TRACE', 'UNLOCK', 'UNSUBSCRIBE'];","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream);\nexports.writableStream = isFunction(global.WritableStream);\nexports.abortController = isFunction(global.AbortController);\nexports.blobConstructor = false;\n\ntry {\n new Blob([new ArrayBuffer(1)]);\n exports.blobConstructor = true;\n} catch (e) {} // The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\n\n\nvar xhr;\n\nfunction getXHR() {\n // Cache the xhr value\n if (xhr !== undefined) return xhr;\n\n if (global.XMLHttpRequest) {\n xhr = new global.XMLHttpRequest(); // If XDomainRequest is available (ie only, where xhr might not work\n // cross domain), use the page location. Otherwise use example.com\n // Note: this doesn't actually make an http request.\n\n try {\n xhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com');\n } catch (e) {\n xhr = null;\n }\n } else {\n // Service workers don't have XHR\n xhr = null;\n }\n\n return xhr;\n}\n\nfunction checkTypeSupport(type) {\n var xhr = getXHR();\n if (!xhr) return false;\n\n try {\n xhr.responseType = type;\n return xhr.responseType === type;\n } catch (e) {}\n\n return false;\n} // For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\n\n\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined';\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice); // If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\n\nexports.arraybuffer = exports.fetch || haveArrayBuffer && checkTypeSupport('arraybuffer'); // These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\n\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream');\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer && checkTypeSupport('moz-chunked-arraybuffer'); // If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\n\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false);\nexports.vbArray = isFunction(global.VBArray);\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nxhr = null; // Help gc","var capability = require('./capability');\n\nvar inherits = require('inherits');\n\nvar stream = require('readable-stream');\n\nvar rStates = exports.readyStates = {\n UNSENT: 0,\n OPENED: 1,\n HEADERS_RECEIVED: 2,\n LOADING: 3,\n DONE: 4\n};\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n var self = this;\n stream.Readable.call(self);\n self._mode = mode;\n self.headers = {};\n self.rawHeaders = [];\n self.trailers = {};\n self.rawTrailers = []; // Fake the 'close' event, but only once 'end' fires\n\n self.on('end', function () {\n // The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n process.nextTick(function () {\n self.emit('close');\n });\n });\n\n if (mode === 'fetch') {\n var read = function read() {\n reader.read().then(function (result) {\n if (self._destroyed) return;\n\n if (result.done) {\n global.clearTimeout(fetchTimer);\n self.push(null);\n return;\n }\n\n self.push(new Buffer(result.value));\n read();\n }).catch(function (err) {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.emit('error', err);\n });\n };\n\n self._fetchResponse = response;\n self.url = response.url;\n self.statusCode = response.status;\n self.statusMessage = response.statusText;\n response.headers.forEach(function (header, key) {\n self.headers[key.toLowerCase()] = header;\n self.rawHeaders.push(key, header);\n });\n\n if (capability.writableStream) {\n var writable = new WritableStream({\n write: function write(chunk) {\n return new Promise(function (resolve, reject) {\n if (self._destroyed) {\n reject();\n } else if (self.push(new Buffer(chunk))) {\n resolve();\n } else {\n self._resumeFetch = resolve;\n }\n });\n },\n close: function close() {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.push(null);\n },\n abort: function abort(err) {\n if (!self._destroyed) self.emit('error', err);\n }\n });\n\n try {\n response.body.pipeTo(writable).catch(function (err) {\n global.clearTimeout(fetchTimer);\n if (!self._destroyed) self.emit('error', err);\n });\n return;\n } catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\n } // fallback for when writableStream or pipeTo aren't available\n\n\n var reader = response.body.getReader();\n read();\n } else {\n self._xhr = xhr;\n self._pos = 0;\n self.url = xhr.responseURL;\n self.statusCode = xhr.status;\n self.statusMessage = xhr.statusText;\n var headers = xhr.getAllResponseHeaders().split(/\\r?\\n/);\n headers.forEach(function (header) {\n var matches = header.match(/^([^:]+):\\s*(.*)/);\n\n if (matches) {\n var key = matches[1].toLowerCase();\n\n if (key === 'set-cookie') {\n if (self.headers[key] === undefined) {\n self.headers[key] = [];\n }\n\n self.headers[key].push(matches[2]);\n } else if (self.headers[key] !== undefined) {\n self.headers[key] += ', ' + matches[2];\n } else {\n self.headers[key] = matches[2];\n }\n\n self.rawHeaders.push(matches[1], matches[2]);\n }\n });\n self._charset = 'x-user-defined';\n\n if (!capability.overrideMimeType) {\n var mimeType = self.rawHeaders['mime-type'];\n\n if (mimeType) {\n var charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/);\n\n if (charsetMatch) {\n self._charset = charsetMatch[1].toLowerCase();\n }\n }\n\n if (!self._charset) self._charset = 'utf-8'; // best guess\n }\n }\n};\n\ninherits(IncomingMessage, stream.Readable);\n\nIncomingMessage.prototype._read = function () {\n var self = this;\n var resolve = self._resumeFetch;\n\n if (resolve) {\n self._resumeFetch = null;\n resolve();\n }\n};\n\nIncomingMessage.prototype._onXHRProgress = function () {\n var self = this;\n var xhr = self._xhr;\n var response = null;\n\n switch (self._mode) {\n case 'text:vbarray':\n // For IE9\n if (xhr.readyState !== rStates.DONE) break;\n\n try {\n // This fails in IE8\n response = new global.VBArray(xhr.responseBody).toArray();\n } catch (e) {}\n\n if (response !== null) {\n self.push(new Buffer(response));\n break;\n }\n\n // Falls through in IE8\t\n\n case 'text':\n try {\n // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n response = xhr.responseText;\n } catch (e) {\n self._mode = 'text:vbarray';\n break;\n }\n\n if (response.length > self._pos) {\n var newData = response.substr(self._pos);\n\n if (self._charset === 'x-user-defined') {\n var buffer = new Buffer(newData.length);\n\n for (var i = 0; i < newData.length; i++) {\n buffer[i] = newData.charCodeAt(i) & 0xff;\n }\n\n self.push(buffer);\n } else {\n self.push(newData, self._charset);\n }\n\n self._pos = response.length;\n }\n\n break;\n\n case 'arraybuffer':\n if (xhr.readyState !== rStates.DONE || !xhr.response) break;\n response = xhr.response;\n self.push(new Buffer(new Uint8Array(response)));\n break;\n\n case 'moz-chunked-arraybuffer':\n // take whole\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING || !response) break;\n self.push(new Buffer(new Uint8Array(response)));\n break;\n\n case 'ms-stream':\n response = xhr.response;\n if (xhr.readyState !== rStates.LOADING) break;\n var reader = new global.MSStreamReader();\n\n reader.onprogress = function () {\n if (reader.result.byteLength > self._pos) {\n self.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))));\n self._pos = reader.result.byteLength;\n }\n };\n\n reader.onload = function () {\n self.push(null);\n }; // reader.onerror = ??? // TODO: this\n\n\n reader.readAsArrayBuffer(response);\n break;\n } // The ms-stream case handles end separately in reader.onload()\n\n\n if (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n self.push(null);\n }\n};","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');","var Reader = require('./src/decompress');\n\nReader.Event = require('./src/event');\nmodule.exports = Reader;","var assertFunction = require('assert-function');\n\nmodule.exports = {\n timeout: wrap(setTimeout, clearTimeout),\n interval: wrap(setInterval, clearInterval)\n};\n\nfunction wrap(set, unset) {\n return function (fn, ms) {\n assertFunction(fn);\n return handler(unset, set(fn, ms));\n };\n}\n\nfunction handler(unset, id) {\n return function () {\n return unset(id);\n };\n}","'use strict';\n\nvar _account = require('./account');\n\nvar account = _interopRequireWildcard(_account);\n\nvar _annotations = require('./annotations');\n\nvar annotations = _interopRequireWildcard(_annotations);\n\nvar _athena = require('./athena');\n\nvar athena = _interopRequireWildcard(_athena);\n\nvar _auth = require('./auth');\n\nvar auth = _interopRequireWildcard(_auth);\n\nvar _devices = require('./devices');\n\nvar devices = _interopRequireWildcard(_devices);\n\nvar _derived = require('./derived');\n\nvar _derived2 = _interopRequireDefault(_derived);\n\nvar _errorHandler = require('./errorHandler');\n\nvar _errorHandler2 = _interopRequireDefault(_errorHandler);\n\nvar _drives = require('./drives');\n\nvar drives = _interopRequireWildcard(_drives);\n\nvar _leaderboard = require('./leaderboard');\n\nvar leaderboard = _interopRequireWildcard(_leaderboard);\n\nvar _raw = require('./raw');\n\nvar raw = _interopRequireWildcard(_raw);\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nvar _vehicles = require('./vehicles');\n\nvar vehicles = _interopRequireWildcard(_vehicles);\n\nvar _video = require('./video');\n\nvar _video2 = _interopRequireDefault(_video);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nmodule.exports = {\n account: account,\n annotations: annotations,\n athena: athena,\n auth: auth,\n devices: devices,\n derived: _derived2.default,\n drives: drives,\n errorHandler: _errorHandler2.default,\n leaderboard: leaderboard,\n raw: raw,\n request: request,\n vehicles: vehicles,\n video: _video2.default\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.config = exports.storage = undefined;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2); // seed cache\n\n\nvar init = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee() {\n var token;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return storage.getCommaAccessToken();\n\n case 2:\n token = _context.sent;\n return _context.abrupt('return', token);\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function init() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar logOut = function () {\n var _ref2 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee2() {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return storage.logOut();\n\n case 2:\n _document2.default.location.href = _document2.default.location.origin;\n\n case 3:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function logOut() {\n return _ref2.apply(this, arguments);\n };\n}();\n\nvar _document = require('global/document');\n\nvar _document2 = _interopRequireDefault(_document);\n\nvar _storage = require('./storage');\n\nvar storage = _interopRequireWildcard(_storage);\n\nvar _config = require('./config');\n\nvar config = _interopRequireWildcard(_config);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.storage = storage;\nexports.config = config;\n\nfunction isAuthenticated() {\n return storage.isAuthed;\n}\n\nexports.default = {\n init: init,\n logOut: logOut,\n isAuthenticated: isAuthenticated\n};","module.exports = simpleGet;\n\nvar concat = require('simple-concat');\n\nvar http = require('http');\n\nvar https = require('https');\n\nvar once = require('once');\n\nvar querystring = require('querystring');\n\nvar decompressResponse = require('decompress-response'); // excluded from browser build\n\n\nvar url = require('url');\n\nfunction simpleGet(opts, cb) {\n opts = typeof opts === 'string' ? {\n url: opts\n } : Object.assign({}, opts);\n cb = once(cb);\n opts.headers = Object.assign({}, opts.headers);\n Object.keys(opts.headers).forEach(function (h) {\n if (h.toLowerCase() !== h) {\n opts.headers[h.toLowerCase()] = opts.headers[h];\n delete opts.headers[h];\n }\n });\n\n if (opts.url) {\n var loc = url.parse(opts.url);\n if (loc.hostname) opts.hostname = loc.hostname;\n if (loc.port) opts.port = loc.port;\n if (loc.protocol) opts.protocol = loc.protocol;\n if (loc.auth) opts.auth = loc.auth;\n opts.path = loc.path;\n delete opts.url;\n }\n\n if (opts.maxRedirects == null) opts.maxRedirects = 10;\n if (opts.method) opts.method = opts.method.toUpperCase();\n var body;\n\n if (opts.body) {\n body = opts.json && !isStream(opts.body) ? JSON.stringify(opts.body) : opts.body;\n } else if (opts.form) {\n body = typeof opts.form === 'string' ? opts.form : querystring.stringify(opts.form);\n opts.headers['content-type'] = 'application/x-www-form-urlencoded';\n }\n\n delete opts.body;\n delete opts.form;\n\n if (body) {\n if (!opts.method) opts.method = 'POST';\n if (!isStream(body)) opts.headers['content-length'] = Buffer.byteLength(body);\n if (opts.json) opts.headers['content-type'] = 'application/json';\n }\n\n if (opts.json) opts.headers.accept = 'application/json';\n if (!opts.headers['accept-encoding']) opts.headers['accept-encoding'] = 'gzip, deflate'; // Prefer gzip\n\n var protocol = opts.protocol === 'https:' ? https : http; // Support http/https urls\n\n var req = protocol.request(opts, function (res) {\n if (res.statusCode >= 300 && res.statusCode < 400 && 'location' in res.headers) {\n opts.url = res.headers.location; // Follow 3xx redirects\n\n delete opts.headers.host; // Discard `host` header on redirect (see #32)\n\n res.resume(); // Discard response\n\n if ((res.statusCode === 301 || res.statusCode === 302) && opts.method === 'POST') {\n opts.method = 'GET'; // On 301/302 redirect, change POST to GET (see #35)\n\n delete opts.headers['content-length'];\n delete opts.headers['content-type'];\n }\n\n if (opts.maxRedirects === 0) return cb(new Error('too many redirects'));\n opts.maxRedirects -= 1;\n return simpleGet(opts, cb);\n }\n\n var tryUnzip = typeof decompressResponse === 'function' && opts.method !== 'HEAD';\n cb(null, tryUnzip ? decompressResponse(res) : res);\n });\n req.on('timeout', function () {\n req.abort();\n cb(new Error('Request timed out'));\n });\n req.on('error', cb);\n if (body && isStream(body)) body.on('error', cb).pipe(req);else req.end(body);\n return req;\n}\n\nsimpleGet.concat = function (opts, cb) {\n return simpleGet(opts, function (err, res) {\n if (err) return cb(err);\n concat(res, function (err, data) {\n if (err) return cb(err);\n\n if (opts.json) {\n try {\n data = JSON.parse(data.toString());\n } catch (err) {\n return cb(err, res, data);\n }\n }\n\n cb(null, res, data);\n });\n });\n};\n\n['get', 'post', 'put', 'patch', 'head', 'delete'].forEach(function (method) {\n simpleGet[method] = function (opts, cb) {\n if (typeof opts === 'string') opts = {\n url: opts\n };\n opts.method = method.toUpperCase();\n return simpleGet(opts, cb);\n };\n});\n\nfunction isStream(obj) {\n return typeof obj.pipe === 'function';\n}","import rightPad from 'right-pad';\nimport CloudLog from '../../logging/CloudLog';\nimport Signal from './signal';\nimport Frame from './frame';\nimport BoardUnit from './BoardUnit';\nimport DbcUtils from '../../utils/dbc';\nimport * as LogSignals from './logSignals';\n\nconst { UINT64 } = require('cuint');\n\nconst DBC_COMMENT_RE = /^CM_ *\"(.*)\";/;\nconst DBC_COMMENT_MULTI_LINE_RE = /^CM_ *\"(.*)/;\n\nconst MSG_RE = /^BO_ (\\w+) (\\w+) *: (\\w+) (\\w+)/;\n\nconst SIGNAL_RE = /^SG_ (\\w+) : (\\d+)\\|(\\d+)@(\\d+)([+|-]) \\(([0-9.+-eE]+),([0-9.+-eE]+)\\) \\[([0-9.+-eE]+)\\|([0-9.+-eE]+)\\] \"(.*)\" (.*)/;\n// Multiplexed signal\nconst MP_SIGNAL_RE = /^SG_ (\\w+) (\\w+) *: (\\d+)\\|(\\d+)@(\\d+)([+|-]) \\(([0-9.+-eE]+),([0-9.+-eE]+)\\) \\[([0-9.+-eE]+)\\|([0-9.+-eE]+)\\] \"(.*)\" (.*)/;\n\nconst VAL_RE = /^VAL_ (\\w+) (\\w+) (.*);/;\nconst VAL_TABLE_RE = /^VAL_TABLE_ (\\w+) (.*);/;\n\nconst MSG_TRANSMITTER_RE = /^BO_TX_BU_ ([0-9]+) *: *(.+);/;\n\nconst SIGNAL_COMMENT_RE = /^CM_ SG_ *(\\w+) *(\\w+) *\"(.*)\";/;\nconst SIGNAL_COMMENT_MULTI_LINE_RE = /^CM_ SG_ *(\\w+) *(\\w+) *\"(.*)/;\n\n// Message Comments (CM_ BO_ )\nconst MESSAGE_COMMENT_RE = /^CM_ BO_ *(\\w+) *\"(.*)\";/;\nconst MESSAGE_COMMENT_MULTI_LINE_RE = /^CM_ BO_ *(\\w+) *\"(.*)/;\n\nconst BOARD_UNIT_RE = /^BU_:(.*)/;\nconst BOARD_UNIT_COMMENT_RE = /^CM_ BU_ *(\\w+) *\"(.*)\";/;\nconst BOARD_UNIT_COMMENT_MULTI_LINE_RE = /^CM_ BU_ *(\\w+) *\"(.*)/;\n\n// Follow ups are used to parse multi-line comment definitions\nconst FOLLOW_UP_DBC_COMMENT = 'FollowUpDbcComment';\nconst FOLLOW_UP_SIGNAL_COMMENT = 'FollowUpSignalComment';\nconst FOLLOW_UP_MSG_COMMENT = 'FollowUpMsgComment';\nconst FOLLOW_UP_BOARD_UNIT_COMMENT = 'FollowUpBoardUnitComment';\n\nfunction floatOrInt(numericStr) {\n if (Number.isInteger(numericStr)) {\n return parseInt(numericStr, 10);\n }\n return parseFloat(numericStr);\n}\n\nexport function swapOrder(arr, wordSize, gSize) {\n const swappedWords = [];\n\n for (let i = 0; i < arr.length; i += wordSize) {\n const word = arr.slice(i, i + wordSize);\n for (let j = wordSize - gSize; j > -gSize; j -= gSize) {\n swappedWords.push(word.slice(j, j + gSize));\n }\n }\n\n return swappedWords.join('');\n}\n\nexport default class DBC {\n constructor(dbcString) {\n this.boardUnits = [];\n this.comments = [];\n this.messages = new Map();\n\n if (dbcString !== undefined) {\n this.dbcText = dbcString;\n this.importDbcString(dbcString);\n }\n }\n\n getMessageFrame(address) {\n if (LogSignals.isLogAddress(address)) {\n return LogSignals.frameForAddress(address);\n }\n return this.messages.get(address);\n }\n\n nextNewFrameName() {\n const messageNames = [];\n\n for (const msg of this.messages.values()) {\n messageNames.push(msg.name);\n }\n\n let msgNum = 1;\n let msgName;\n do {\n msgName = `NEW_MSG_${msgNum}`;\n msgNum++;\n } while (messageNames.indexOf(msgName) !== -1);\n\n return msgName;\n }\n\n updateBoardUnits() {\n const boardUnitNames = this.boardUnits.map((bu) => bu.name);\n const missingBoardUnits = Array.from(this.messages.entries())\n .map(([msgId, frame]) => Object.values(frame.signals))\n .reduce((arr, signals) => arr.concat(signals), [])\n .map((signal) => signal.receiver)\n .reduce((arr, receivers) => arr.concat(receivers), [])\n .filter((recv, idx, array) => array.indexOf(recv) === idx)\n .filter((recv) => boardUnitNames.indexOf(recv) === -1)\n .map((recv) => new BoardUnit(recv));\n\n this.boardUnits = this.boardUnits.concat(missingBoardUnits);\n }\n\n text() {\n this.updateBoardUnits();\n\n let txt = 'VERSION \"\"\\n\\n\\n';\n txt += `NS_ :${this._newSymbols()}`;\n txt += '\\n\\nBS_:\\n';\n\n const boardUnitsText = this.boardUnits.map((bu) => bu.text()).join(' ');\n txt += `\\nBU_: ${boardUnitsText}\\n\\n\\n`;\n\n const frames = [];\n for (const frame of this.messages.values()) {\n frames.push(frame);\n }\n txt += `${frames.map((f) => f.text()).join('\\n\\n')}\\n\\n`;\n\n const messageTxs = frames\n .map((f) => [f.id, f.transmitters.slice(1)])\n .filter(([addr, txs]) => txs.length > 0);\n txt += `${messageTxs\n .map(([addr, txs]) => `BO_TX_BU_ ${addr} : ${txs.join(',')};`)\n .join('\\n')}\\n\\n\\n`;\n\n txt += this.boardUnits\n .filter((bu) => bu.comment !== null)\n .map((bu) => `CM_ BU_ ${bu.name} \"${bu.comment}\";`)\n .join('\\n');\n\n txt += frames\n .filter((f) => f.comment !== null)\n .map((msg) => `CM_ BO_ ${msg.address} \"${msg.comment}\";`)\n .join('\\n');\n\n const signalsByMsgId = frames\n .map((f) => Object.values(f.signals).map((sig) => [f.id, sig]))\n .reduce((s1, s2) => s1.concat(s2), []);\n\n txt += `${signalsByMsgId\n .filter(([msgAddr, sig]) => sig.comment !== null)\n .map(\n ([msgAddr, sig]) => `CM_ SG_ ${msgAddr} ${sig.name} \"${sig.comment}\";`\n )\n .join('\\n')}\\n`;\n\n txt += `${signalsByMsgId\n .filter(([msgAddr, sig]) => sig.valueDescriptions.size > 0)\n .map(([msgAddr, sig]) => sig.valueDescriptionText(msgAddr))\n .join('\\n')}\\n`;\n\n txt += this.comments.map((comment) => `CM_ \"${comment}\";`).join('\\n');\n\n return `${txt.trim()}\\n`;\n }\n\n getMessageName(msgId) {\n const msg = this.getMessageFrame(msgId);\n if (msg && msg.frame) return msg.frame.name;\n return null;\n }\n\n getSignals(msgId) {\n const msg = this.getMessageFrame(msgId);\n if (msg) return msg.signals;\n return {};\n }\n\n createFrame(msgId) {\n const msg = new Frame({\n name: this.nextNewFrameName(),\n id: msgId,\n size: 8\n });\n\n this.messages.set(msgId, msg);\n return msg;\n }\n\n setSignals(msgId, signals) {\n const msg = this.getMessageFrame(msgId);\n if (msg) {\n const newMsg = Object.assign(Object.create(msg), msg);\n newMsg.signals = signals;\n this.messages.set(msgId, newMsg);\n } else {\n const msg = this.createFrame(msgId);\n msg.signals = signals;\n\n this.messages.set(msgId, msg);\n this.updateBoardUnits();\n }\n }\n\n addSignal(msgId, signal) {\n const msg = this.getMessageFrame(msgId);\n\n if (msg) {\n msg.signals[signal.name] = signal;\n this.updateBoardUnits();\n }\n }\n\n importDbcString(dbcString) {\n const warnings = [];\n const messages = new Map();\n let boardUnits = [];\n const valueTables = new Map();\n let id = 0;\n let followUp = null;\n\n const lines = dbcString.split('\\n');\n for (let i = 0; i < lines.length; i++) {\n let line = lines[i].trim();\n\n if (line.length === 0) continue;\n\n if (followUp != null) {\n const { type, data } = followUp;\n line = line.replace(/\" *;/, '');\n let followUpLine = `\\n${line.substr(0, line.length)}`;\n if (line.indexOf('\"') !== -1) {\n followUp = null;\n followUpLine = followUpLine.substr(0, followUpLine.length - 1);\n }\n if (type === FOLLOW_UP_SIGNAL_COMMENT) {\n const signal = data;\n signal.comment += followUpLine;\n } else if (type === FOLLOW_UP_MSG_COMMENT) {\n const msg = data;\n msg.comment += followUpLine;\n } else if (type === FOLLOW_UP_BOARD_UNIT_COMMENT) {\n const boardUnit = data;\n boardUnit.comment += followUpLine;\n } else if (type === FOLLOW_UP_DBC_COMMENT) {\n // const comment = data;\n const partialComment = this.comments[this.comments.length - 1];\n this.comments[this.comments.length - 1] = partialComment + followUpLine;\n }\n }\n\n if (line.indexOf('BO_ ') === 0) {\n const matches = line.match(MSG_RE);\n if (matches === null) {\n warnings.push(\n `failed to parse message definition on line ${i + 1} -- ${line}`\n );\n continue;\n }\n let [idString, name, size, transmitter] = matches.slice(1);\n id = parseInt(idString, 0); // 0 radix parses hex or dec\n size = parseInt(size, 10);\n const frame = new Frame({\n name,\n id,\n size,\n transmitters: [transmitter]\n });\n messages.set(id, frame);\n } else if (line.indexOf('SG_') === 0) {\n let matches = line.match(SIGNAL_RE);\n\n if (matches === null) {\n matches = line.match(MP_SIGNAL_RE);\n if (matches === null) {\n warnings.push(\n `failed to parse signal definition on line ${i + 1} -- ${line}`\n );\n continue;\n }\n // for now, ignore multiplex which is matches[1]\n matches = matches[1] + matches.slice(3);\n } else {\n matches = matches.slice(1);\n }\n\n let [\n name,\n startBit,\n size,\n isLittleEndian,\n isSigned,\n factor,\n offset,\n min,\n max,\n unit,\n receiverStr\n ] = matches;\n startBit = parseInt(startBit, 10);\n size = parseInt(size, 10);\n isLittleEndian = parseInt(isLittleEndian, 10) === 1;\n isSigned = isSigned === '-';\n factor = floatOrInt(factor);\n offset = floatOrInt(offset);\n min = floatOrInt(min);\n max = floatOrInt(max);\n const receiver = receiverStr.split(',').map((s) => s.trim());\n\n const signalProperties = {\n name,\n startBit,\n size,\n isLittleEndian,\n isSigned,\n factor,\n offset,\n unit,\n min,\n max,\n receiver\n };\n const signal = new Signal(signalProperties);\n\n if (messages.get(id) !== undefined) {\n messages.get(id).signals[name] = signal;\n } else {\n CloudLog.warn(\n `importDbcString: could not add signal: ${name} due to missing message: ${id}`\n );\n }\n } else if (line.indexOf('VAL_ ') === 0) {\n const matches = line.match(VAL_RE);\n\n if (matches !== null) {\n let [messageId, signalName, vals] = matches.slice(1);\n vals = vals\n .split('\"')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n\n messageId = parseInt(messageId, 10);\n const msg = messages.get(messageId);\n const signal = msg.signals[signalName];\n if (signal === undefined) {\n warnings.push(\n `could not find signal for value description on line ${i\n + 1} -- ${line}`\n );\n continue;\n }\n for (let i = 0; i < vals.length; i += 2) {\n const value = vals[i].trim();\n const description = vals[i + 1].trim();\n signal.valueDescriptions.set(value, description);\n }\n } else {\n warnings.push(\n `failed to parse value description on line ${i + 1} -- ${line}`\n );\n }\n } else if (line.indexOf('VAL_TABLE_ ') === 0) {\n const matches = line.match(VAL_TABLE_RE);\n\n if (matches !== null) {\n const table = new Map();\n let [tableName, items] = matches.slice(1);\n items = items\n .split('\"')\n .map((s) => s.trim())\n .filter((s) => s.length > 0);\n\n for (let i = 0; i < items.length; i += 2) {\n const key = items[i];\n const value = items[i + 1];\n table.set(key, value);\n }\n valueTables.set(tableName, table);\n } else {\n warnings.push(\n `failed to parse value table on line ${i + 1} -- ${line}`\n );\n }\n } else if (line.indexOf('BO_TX_BU_ ') === 0) {\n const matches = line.match(MSG_TRANSMITTER_RE);\n\n if (matches !== null) {\n let [messageId, transmitter] = matches.slice(1);\n messageId = parseInt(messageId, 10);\n\n const msg = messages.get(messageId);\n msg.transmitters.push(transmitter);\n messages.set(messageId, msg);\n } else {\n warnings.push(\n `failed to parse message transmitter definition on line ${i\n + 1} -- ${line}`\n );\n }\n } else if (line.indexOf('CM_ SG_ ') === 0) {\n let matches = line.match(SIGNAL_COMMENT_RE);\n let hasFollowUp = false;\n if (matches === null) {\n matches = line.match(SIGNAL_COMMENT_MULTI_LINE_RE);\n hasFollowUp = true;\n }\n if (matches === null) {\n warnings.push(\n `failed to parse signal comment on line ${i + 1} -- ${line}`\n );\n continue;\n }\n\n let [messageId, signalName, comment] = matches.slice(1);\n\n messageId = parseInt(messageId, 10);\n const msg = messages.get(messageId);\n if (msg === undefined) {\n warnings.push(`failed to parse signal comment on line ${i\n + 1} -- ${line}:\n message id ${messageId} does not exist prior to this line`);\n continue;\n }\n const signal = msg.signals[signalName];\n if (signal === undefined) {\n warnings.push(\n `failed to parse signal comment on line ${i + 1} -- ${line}`\n );\n continue;\n } else {\n signal.comment = comment;\n messages.set(messageId, msg);\n }\n\n if (hasFollowUp) {\n followUp = { type: FOLLOW_UP_SIGNAL_COMMENT, data: signal };\n }\n } else if (line.indexOf('CM_ BO_ ') === 0) {\n let matches = line.match(MESSAGE_COMMENT_RE);\n let hasFollowUp = false;\n if (matches === null) {\n matches = line.match(MESSAGE_COMMENT_MULTI_LINE_RE);\n hasFollowUp = true;\n if (matches === null) {\n warnings.push(\n `failed to message comment on line ${i + 1} -- ${line}`\n );\n continue;\n }\n }\n\n let [messageId, comment] = matches.slice(1);\n messageId = parseInt(messageId, 10);\n const msg = messages.get(messageId);\n msg.comment = comment;\n\n if (hasFollowUp) {\n followUp = { type: FOLLOW_UP_MSG_COMMENT, data: msg };\n }\n } else if (line.indexOf('BU_: ') === 0) {\n const matches = line.match(BOARD_UNIT_RE);\n\n if (matches !== null) {\n const [boardUnitNameStr] = matches.slice(1);\n const newBoardUnits = boardUnitNameStr\n .split(' ')\n .map((s) => s.trim())\n .filter((s) => s.length > 0)\n .map((name) => new BoardUnit(name));\n\n boardUnits = boardUnits.concat(newBoardUnits);\n } else {\n warnings.push(\n `failed to parse board unit definition on line ${i + 1} -- ${line}`\n );\n continue;\n }\n } else if (line.indexOf('CM_ BU_ ') === 0) {\n let matches = line.match(BOARD_UNIT_COMMENT_RE);\n let hasFollowUp = false;\n if (matches === null) {\n matches = line.match(BOARD_UNIT_COMMENT_MULTI_LINE_RE);\n hasFollowUp = true;\n if (matches === null) {\n warnings.push(\n `failed to parse board unit comment on line ${i + 1} -- ${line}`\n );\n continue;\n }\n }\n\n const [boardUnitName, comment] = matches.slice(1);\n const boardUnit = boardUnits.find((bu) => bu.name === boardUnitName);\n if (boardUnit) {\n boardUnit.comment = comment;\n }\n\n if (hasFollowUp) {\n followUp = { type: FOLLOW_UP_BOARD_UNIT_COMMENT, data: boardUnit };\n }\n } else if (line.indexOf('CM_ ') === 0) {\n let matches = line.match(DBC_COMMENT_RE);\n let hasFollowUp = false;\n if (matches === null) {\n matches = line.match(DBC_COMMENT_MULTI_LINE_RE);\n if (matches === null) {\n warnings.push(\n `failed to parse dbc comment on line ${i + 1} -- ${line}`\n );\n continue;\n } else {\n hasFollowUp = true;\n }\n }\n\n const [comment] = matches.slice(1);\n this.comments.push(comment);\n if (hasFollowUp) {\n followUp = { type: FOLLOW_UP_DBC_COMMENT, data: comment };\n }\n }\n }\n\n // Disabled b/c live mode frequently calls this function\n // and executes way too many network requests\n if (warnings.length > 0) {\n // warnings.forEach((warning) => CloudLog.warn('importDbcString: ' + warning));\n // warnings.forEach((warning) => console.log('importDbcString: ' + warning));\n }\n\n this.messages = messages;\n this.boardUnits = boardUnits;\n this.valueTables = valueTables;\n }\n\n valueForInt64Signal(signalSpec, hexData) {\n const blen = hexData.length * 4;\n let value;\n let startBit;\n let dataBitPos;\n\n if (signalSpec.isLittleEndian) {\n value = UINT64(swapOrder(hexData, 16, 2), 16);\n startBit = signalSpec.startBit;\n dataBitPos = UINT64(startBit);\n } else {\n // big endian\n value = UINT64(hexData, 16);\n\n startBit = DbcUtils.bigEndianBitIndex(signalSpec.startBit);\n dataBitPos = UINT64(blen - (startBit + signalSpec.size));\n }\n if (dataBitPos < 0) {\n return null;\n }\n\n const rightHandAnd = UINT64(Math.pow(2, signalSpec.size) - 1);\n let ival = value\n .shiftr(dataBitPos)\n .and(rightHandAnd)\n .toNumber();\n\n if (signalSpec.isSigned && ival & Math.pow(2, signalSpec.size - 1)) {\n ival -= Math.pow(2, signalSpec.size);\n }\n ival = ival * signalSpec.factor + signalSpec.offset;\n return ival;\n }\n\n valueForInt32Signal(signalSpec, buf) {\n let startBit;\n if (signalSpec.isLittleEndian) {\n startBit = 64 - signalSpec.startBit - signalSpec.size;\n } else {\n let bitPos = (-signalSpec.startBit - 1) % 8;\n if (bitPos < 0) {\n bitPos += 8; // mimic python modulo behavior\n }\n\n startBit = Math.floor(signalSpec.startBit / 8) * 8 + bitPos;\n }\n\n let shiftAmount;\n let signalValue;\n const byteOffset = Math.min(4, Math.floor(signalSpec.startBit / 8));\n if (signalSpec.isLittleEndian) {\n signalValue = buf.readUInt32LE(byteOffset);\n shiftAmount = signalSpec.startBit - 8 * byteOffset;\n } else {\n signalValue = buf.readUInt32BE(byteOffset);\n shiftAmount = 32 - (startBit - 8 * byteOffset + signalSpec.size);\n }\n\n signalValue = (signalValue >>> shiftAmount) & ((1 << signalSpec.size) - 1);\n if (signalSpec.isSigned && signalValue >>> (signalSpec.size - 1)) {\n signalValue -= 1 << signalSpec.size;\n }\n\n return signalValue * signalSpec.factor + signalSpec.offset;\n }\n\n getSignalValues(messageId, data) {\n if (!this.messages.has(messageId) && !LogSignals.isLogAddress(messageId)) {\n return {};\n }\n const frame = this.getMessageFrame(messageId);\n\n const buffer = Buffer.from(data);\n let paddedBuffer = buffer;\n if (buffer.length !== 8) {\n // pad data it's 64 bits long\n const paddedDataHex = rightPad(buffer.toString('hex'), 16, '0');\n paddedBuffer = Buffer.from(paddedDataHex, 'hex');\n }\n const hexData = paddedBuffer.toString('hex');\n\n const signalValuesByName = {};\n Object.values(frame.signals).forEach((signalSpec) => {\n let value;\n if (signalSpec.size > 32) {\n value = this.valueForInt64Signal(signalSpec, hexData);\n } else {\n value = this.valueForInt32Signal(signalSpec, paddedBuffer);\n }\n signalValuesByName[signalSpec.name] = value;\n });\n\n return signalValuesByName;\n }\n\n getChffrMetricMappings() {\n const metricComment = this.comments.find(\n (comment) => comment.indexOf('CHFFR_METRIC') === 0\n );\n if (!metricComment) {\n return null;\n }\n\n return metricComment\n .split(';')\n .map((metric) => metric.trim().split(' '))\n .reduce(\n (metrics, [_, messageId, signalName, metricName, factor, offset]) => {\n metrics[metricName] = {\n messageId: parseInt(messageId, 10),\n signalName,\n factor: parseFloat(factor),\n offset: parseFloat(offset)\n };\n return metrics;\n },\n {}\n );\n }\n\n _newSymbols() {\n return `\n NS_DESC_\n CM_\n BA_DEF_\n BA_\n VAL_\n CAT_DEF_\n CAT_\n FILTER\n BA_DEF_DEF_\n EV_DATA_\n ENVVAR_DATA_\n SGTYPE_\n SGTYPE_VAL_\n BA_DEF_SGTYPE_\n BA_SGTYPE_\n SIG_TYPE_REF_\n VAL_TABLE_\n SIG_GROUP_\n SIG_VALTYPE_\n SIGTYPE_VALTYPE_\n BO_TX_BU_\n BA_DEF_REL_\n BA_REL_\n BA_DEF_DEF_REL_\n BU_SG_REL_\n BU_EV_REL_\n BU_BO_REL_\n SG_MUL_VAL_`;\n }\n}\n","// Coding standard for this project defined @ https://github.com/MatthewSH/standards/blob/master/JavaScript.md\n'use strict';\n\nexports = module.exports = function rightPad(_string, _length, _char) {\n if (typeof _string !== 'string') {\n throw new Error('The string parameter must be a string.');\n }\n\n if (_string.length < 1) {\n throw new Error('The string parameter must be 1 character or longer.');\n }\n\n if (typeof _length !== 'number') {\n throw new Error('The length parameter must be a number.');\n }\n\n if (typeof _char !== 'string' && _char) {\n throw new Error('The character parameter must be a string.');\n }\n\n var i = -1;\n _length = _length - _string.length;\n\n if (!_char && _char !== 0) {\n _char = ' ';\n }\n\n while (++i < _length) {\n _string += _char;\n }\n\n return _string;\n};","import LogEntries from './LogEntries';\nimport { LOGENTRIES_TOKEN } from '../config';\n\nclass CloudLog {\n constructor() {\n LogEntries.init({\n token: LOGENTRIES_TOKEN,\n no_format: true,\n catchall: false\n });\n this.context = {};\n }\n\n bind(obj) {\n this.context.update(obj);\n }\n\n emit(message, level = 'log') {\n if (typeof global.__JEST__ !== 'undefined') {\n // Don't log in testing environment\n return;\n }\n\n const entry = {\n ctx: this.context,\n created: new Date().getTime() / 1000,\n msg: message,\n src: 'JSCloudLog'\n };\n\n if (level === 'log') {\n LogEntries.log(entry);\n } else if (level === 'warn') {\n LogEntries.warn(entry);\n } else if (level === 'error') {\n LogEntries.error(entry);\n }\n }\n\n log(message) {\n this.emit(message);\n }\n\n warn(message) {\n this.emit(message, 'warn');\n }\n\n error(message) {\n this.emit(message, 'error');\n }\n}\n\nexport default new CloudLog();\n","// randomColor by David Merfield under the CC0 license\n// https://github.com/davidmerfield/randomColor/\n;\n\n(function (root, factory) {\n // Support CommonJS\n if (typeof exports === 'object') {\n var randomColor = factory(); // Support NodeJS & Component, which allow module.exports to be a function\n\n if (typeof module === 'object' && module && module.exports) {\n exports = module.exports = randomColor;\n } // Support CommonJS 1.1.1 spec\n\n\n exports.randomColor = randomColor; // Support AMD\n } else if (typeof define === 'function' && define.amd) {\n define([], factory); // Support vanilla script loading\n } else {\n root.randomColor = factory();\n }\n})(this, function () {\n // Seed to get repeatable colors\n var seed = null; // Shared color dictionary\n\n var colorDictionary = {}; // Populate the color dictionary\n\n loadColorBounds(); // check if a range is taken\n\n var colorRanges = [];\n\n var randomColor = function randomColor(options) {\n options = options || {}; // Check if there is a seed and ensure it's an\n // integer. Otherwise, reset the seed value.\n\n if (options.seed !== undefined && options.seed !== null && options.seed === parseInt(options.seed, 10)) {\n seed = options.seed; // A string was passed as a seed\n } else if (typeof options.seed === 'string') {\n seed = stringToInteger(options.seed); // Something was passed as a seed but it wasn't an integer or string\n } else if (options.seed !== undefined && options.seed !== null) {\n throw new TypeError('The seed value must be an integer or string'); // No seed, reset the value outside.\n } else {\n seed = null;\n }\n\n var H, S, B; // Check if we need to generate multiple colors\n\n if (options.count !== null && options.count !== undefined) {\n var totalColors = options.count,\n colors = []; // Value false at index i means the range i is not taken yet.\n\n for (var i = 0; i < options.count; i++) {\n colorRanges.push(false);\n }\n\n options.count = null;\n\n while (totalColors > colors.length) {\n // Since we're generating multiple colors,\n // incremement the seed. Otherwise we'd just\n // generate the same color each time...\n if (seed && options.seed) options.seed += 1;\n colors.push(randomColor(options));\n }\n\n options.count = totalColors;\n return colors;\n } // First we pick a hue (H)\n\n\n H = pickHue(options); // Then use H to determine saturation (S)\n\n S = pickSaturation(H, options); // Then use S and H to determine brightness (B).\n\n B = pickBrightness(H, S, options); // Then we return the HSB color in the desired format\n\n return setFormat([H, S, B], options);\n };\n\n function pickHue(options) {\n if (colorRanges.length > 0) {\n var hueRange = getRealHueRange(options.hue);\n var hue = randomWithin(hueRange); //Each of colorRanges.length ranges has a length equal approximatelly one step\n\n var step = (hueRange[1] - hueRange[0]) / colorRanges.length;\n var j = parseInt((hue - hueRange[0]) / step); //Check if the range j is taken\n\n if (colorRanges[j] === true) {\n j = (j + 2) % colorRanges.length;\n } else {\n colorRanges[j] = true;\n }\n\n var min = (hueRange[0] + j * step) % 359,\n max = (hueRange[0] + (j + 1) * step) % 359;\n hueRange = [min, max];\n hue = randomWithin(hueRange);\n\n if (hue < 0) {\n hue = 360 + hue;\n }\n\n return hue;\n } else {\n var hueRange = getHueRange(options.hue);\n hue = randomWithin(hueRange); // Instead of storing red as two seperate ranges,\n // we group them, using negative numbers\n\n if (hue < 0) {\n hue = 360 + hue;\n }\n\n return hue;\n }\n }\n\n function pickSaturation(hue, options) {\n if (options.hue === 'monochrome') {\n return 0;\n }\n\n if (options.luminosity === 'random') {\n return randomWithin([0, 100]);\n }\n\n var saturationRange = getSaturationRange(hue);\n var sMin = saturationRange[0],\n sMax = saturationRange[1];\n\n switch (options.luminosity) {\n case 'bright':\n sMin = 55;\n break;\n\n case 'dark':\n sMin = sMax - 10;\n break;\n\n case 'light':\n sMax = 55;\n break;\n }\n\n return randomWithin([sMin, sMax]);\n }\n\n function pickBrightness(H, S, options) {\n var bMin = getMinimumBrightness(H, S),\n bMax = 100;\n\n switch (options.luminosity) {\n case 'dark':\n bMax = bMin + 20;\n break;\n\n case 'light':\n bMin = (bMax + bMin) / 2;\n break;\n\n case 'random':\n bMin = 0;\n bMax = 100;\n break;\n }\n\n return randomWithin([bMin, bMax]);\n }\n\n function setFormat(hsv, options) {\n switch (options.format) {\n case 'hsvArray':\n return hsv;\n\n case 'hslArray':\n return HSVtoHSL(hsv);\n\n case 'hsl':\n var hsl = HSVtoHSL(hsv);\n return 'hsl(' + hsl[0] + ', ' + hsl[1] + '%, ' + hsl[2] + '%)';\n\n case 'hsla':\n var hslColor = HSVtoHSL(hsv);\n var alpha = options.alpha || Math.random();\n return 'hsla(' + hslColor[0] + ', ' + hslColor[1] + '%, ' + hslColor[2] + '%, ' + alpha + ')';\n\n case 'rgbArray':\n return HSVtoRGB(hsv);\n\n case 'rgb':\n var rgb = HSVtoRGB(hsv);\n return 'rgb(' + rgb.join(', ') + ')';\n\n case 'rgba':\n var rgbColor = HSVtoRGB(hsv);\n var alpha = options.alpha || Math.random();\n return 'rgba(' + rgbColor.join(', ') + ', ' + alpha + ')';\n\n default:\n return HSVtoHex(hsv);\n }\n }\n\n function getMinimumBrightness(H, S) {\n var lowerBounds = getColorInfo(H).lowerBounds;\n\n for (var i = 0; i < lowerBounds.length - 1; i++) {\n var s1 = lowerBounds[i][0],\n v1 = lowerBounds[i][1];\n var s2 = lowerBounds[i + 1][0],\n v2 = lowerBounds[i + 1][1];\n\n if (S >= s1 && S <= s2) {\n var m = (v2 - v1) / (s2 - s1),\n b = v1 - m * s1;\n return m * S + b;\n }\n }\n\n return 0;\n }\n\n function getHueRange(colorInput) {\n if (typeof parseInt(colorInput) === 'number') {\n var number = parseInt(colorInput);\n\n if (number < 360 && number > 0) {\n return [number, number];\n }\n }\n\n if (typeof colorInput === 'string') {\n if (colorDictionary[colorInput]) {\n var color = colorDictionary[colorInput];\n\n if (color.hueRange) {\n return color.hueRange;\n }\n } else if (colorInput.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)) {\n var hue = HexToHSB(colorInput)[0];\n return [hue, hue];\n }\n }\n\n return [0, 360];\n }\n\n function getSaturationRange(hue) {\n return getColorInfo(hue).saturationRange;\n }\n\n function getColorInfo(hue) {\n // Maps red colors to make picking hue easier\n if (hue >= 334 && hue <= 360) {\n hue -= 360;\n }\n\n for (var colorName in colorDictionary) {\n var color = colorDictionary[colorName];\n\n if (color.hueRange && hue >= color.hueRange[0] && hue <= color.hueRange[1]) {\n return colorDictionary[colorName];\n }\n }\n\n return 'Color not found';\n }\n\n function randomWithin(range) {\n if (seed === null) {\n //generate random evenly destinct number from : https://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n var golden_ratio = 0.618033988749895;\n var r = Math.random();\n r += golden_ratio;\n r %= 1;\n return Math.floor(range[0] + r * (range[1] + 1 - range[0]));\n } else {\n //Seeded random algorithm from http://indiegamr.com/generate-repeatable-random-numbers-in-js/\n var max = range[1] || 1;\n var min = range[0] || 0;\n seed = (seed * 9301 + 49297) % 233280;\n var rnd = seed / 233280.0;\n return Math.floor(min + rnd * (max - min));\n }\n }\n\n function HSVtoHex(hsv) {\n var rgb = HSVtoRGB(hsv);\n\n function componentToHex(c) {\n var hex = c.toString(16);\n return hex.length == 1 ? '0' + hex : hex;\n }\n\n var hex = '#' + componentToHex(rgb[0]) + componentToHex(rgb[1]) + componentToHex(rgb[2]);\n return hex;\n }\n\n function defineColor(name, hueRange, lowerBounds) {\n var sMin = lowerBounds[0][0],\n sMax = lowerBounds[lowerBounds.length - 1][0],\n bMin = lowerBounds[lowerBounds.length - 1][1],\n bMax = lowerBounds[0][1];\n colorDictionary[name] = {\n hueRange: hueRange,\n lowerBounds: lowerBounds,\n saturationRange: [sMin, sMax],\n brightnessRange: [bMin, bMax]\n };\n }\n\n function loadColorBounds() {\n defineColor('monochrome', null, [[0, 0], [100, 0]]);\n defineColor('red', [-26, 18], [[20, 100], [30, 92], [40, 89], [50, 85], [60, 78], [70, 70], [80, 60], [90, 55], [100, 50]]);\n defineColor('orange', [19, 46], [[20, 100], [30, 93], [40, 88], [50, 86], [60, 85], [70, 70], [100, 70]]);\n defineColor('yellow', [47, 62], [[25, 100], [40, 94], [50, 89], [60, 86], [70, 84], [80, 82], [90, 80], [100, 75]]);\n defineColor('green', [63, 178], [[30, 100], [40, 90], [50, 85], [60, 81], [70, 74], [80, 64], [90, 50], [100, 40]]);\n defineColor('blue', [179, 257], [[20, 100], [30, 86], [40, 80], [50, 74], [60, 60], [70, 52], [80, 44], [90, 39], [100, 35]]);\n defineColor('purple', [258, 282], [[20, 100], [30, 87], [40, 79], [50, 70], [60, 65], [70, 59], [80, 52], [90, 45], [100, 42]]);\n defineColor('pink', [283, 334], [[20, 100], [30, 90], [40, 86], [60, 84], [80, 80], [90, 75], [100, 73]]);\n }\n\n function HSVtoRGB(hsv) {\n // this doesn't work for the values of 0 and 360\n // here's the hacky fix\n var h = hsv[0];\n\n if (h === 0) {\n h = 1;\n }\n\n if (h === 360) {\n h = 359;\n } // Rebase the h,s,v values\n\n\n h = h / 360;\n var s = hsv[1] / 100,\n v = hsv[2] / 100;\n var h_i = Math.floor(h * 6),\n f = h * 6 - h_i,\n p = v * (1 - s),\n q = v * (1 - f * s),\n t = v * (1 - (1 - f) * s),\n r = 256,\n g = 256,\n b = 256;\n\n switch (h_i) {\n case 0:\n r = v;\n g = t;\n b = p;\n break;\n\n case 1:\n r = q;\n g = v;\n b = p;\n break;\n\n case 2:\n r = p;\n g = v;\n b = t;\n break;\n\n case 3:\n r = p;\n g = q;\n b = v;\n break;\n\n case 4:\n r = t;\n g = p;\n b = v;\n break;\n\n case 5:\n r = v;\n g = p;\n b = q;\n break;\n }\n\n var result = [Math.floor(r * 255), Math.floor(g * 255), Math.floor(b * 255)];\n return result;\n }\n\n function HexToHSB(hex) {\n hex = hex.replace(/^#/, '');\n hex = hex.length === 3 ? hex.replace(/(.)/g, '$1$1') : hex;\n var red = parseInt(hex.substr(0, 2), 16) / 255,\n green = parseInt(hex.substr(2, 2), 16) / 255,\n blue = parseInt(hex.substr(4, 2), 16) / 255;\n var cMax = Math.max(red, green, blue),\n delta = cMax - Math.min(red, green, blue),\n saturation = cMax ? delta / cMax : 0;\n\n switch (cMax) {\n case red:\n return [60 * ((green - blue) / delta % 6) || 0, saturation, cMax];\n\n case green:\n return [60 * ((blue - red) / delta + 2) || 0, saturation, cMax];\n\n case blue:\n return [60 * ((red - green) / delta + 4) || 0, saturation, cMax];\n }\n }\n\n function HSVtoHSL(hsv) {\n var h = hsv[0],\n s = hsv[1] / 100,\n v = hsv[2] / 100,\n k = (2 - s) * v;\n return [h, Math.round(s * v / (k < 1 ? k : 2 - k) * 10000) / 100, k / 2 * 100];\n }\n\n function stringToInteger(string) {\n var total = 0;\n\n for (var i = 0; i !== string.length; i++) {\n if (total >= Number.MAX_SAFE_INTEGER) break;\n total += string.charCodeAt(i);\n }\n\n return total;\n } // get The range of given hue when options.count!=0\n\n\n function getRealHueRange(colorHue) {\n if (!isNaN(colorHue)) {\n var number = parseInt(colorHue);\n\n if (number < 360 && number > 0) {\n return getColorInfo(colorHue).hueRange;\n }\n } else if (typeof colorHue === 'string') {\n if (colorDictionary[colorHue]) {\n var color = colorDictionary[colorHue];\n\n if (color.hueRange) {\n return color.hueRange;\n }\n } else if (colorHue.match(/^#?([0-9A-F]{3}|[0-9A-F]{6})$/i)) {\n var hue = HexToHSB(colorHue)[0];\n return getColorInfo(hue).hueRange;\n }\n }\n\n return [0, 360];\n }\n\n return randomColor;\n});","import { getUrlParameter } from './utils/url';\n\nconst ENV = process.env.NODE_ENV === 'production' ? 'prod' : 'debug';\n\nconst ENV_GITHUB_CLIENT_ID = {\n debug: 'f1e42d14f45491f9ca34',\n prod: '4b43250e7499a97d62a5'\n};\nexport const GITHUB_CLIENT_ID = ENV_GITHUB_CLIENT_ID[ENV];\n\nconst ENV_GITHUB_REDIRECT_URL = {\n debug: 'http://127.0.0.1:1235/callback',\n prod: 'https://api.comma.ai/cabana/ghcallback'\n};\nexport const GITHUB_REDIRECT_URL = ENV_GITHUB_REDIRECT_URL[ENV];\nexport const GITHUB_AUTH_TOKEN_KEY = 'gh_access_token';\nexport const OPENDBC_SOURCE_REPO = 'commaai/opendbc';\n\nexport const USE_UNLOGGER = typeof window !== 'undefined' && getUrlParameter('unlogger') !== null;\nexport const UNLOGGER_HOST = 'http://localhost:8080/unlogger';\n\nexport const LOGENTRIES_TOKEN = '4bc98019-8277-4fe0-867c-ed21ea843cc5';\n\nexport const PART_SEGMENT_LENGTH = 3;\n\nexport const CAN_GRAPH_MAX_POINTS = 5000;\n\nexport const STREAMING_WINDOW = 60;\n\nconst ENV_EXPLORER_URL = {\n debug: 'http://127.0.0.1:3000/',\n prod: 'https://my.comma.ai/'\n};\nexport const EXPLORER_URL = ENV_EXPLORER_URL[ENV];\n","/* eslint-disable no-restricted-globals */\nexport function objToQuery(obj) {\n return Object.keys(obj)\n .map((k) => `${k}=${encodeURIComponent(decodeURIComponent(obj[k]))}`)\n .join('&');\n}\n\nexport function getUrlParameter(name) {\n const { location } = window;\n name = name.replace(/[[]/, '\\\\[').replace(/[\\]]/, '\\\\]');\n const regex = new RegExp(`[\\\\?&]${name}=([^&#]*)`);\n const results = regex.exec(location.search);\n\n return results === null\n ? null\n : decodeURIComponent(results[1].replace(/\\+/g, ' '));\n}\n\nexport function modifyQueryParameters({ add, remove = [] }) {\n const regex = new RegExp('[\\\\?&]([^&#]+)=([^&#]*)');\n const results = regex.exec(location.search);\n\n let params = {};\n if (results != null) {\n for (let i = 1; i < results.length - 1; i += 2) {\n const key = results[i];\n const value = results[i + 1];\n params[key] = value;\n }\n for (const key in params) {\n if (remove.indexOf(key) !== -1) {\n delete params[key];\n }\n }\n params = { ...params, ...add };\n } else {\n params = add;\n }\n\n return `${location.origin + location.pathname}?${objToQuery(params)}`;\n}\n","var ReaderStream = require('./reader');\n\nvar StreamSelector = require('stream-selector');\n\nvar fileType = require('file-type');\n\nvar zlib = require('zlib');\n\nvar bz2 = require('wasm-bz2/stream');\n\nvar PassThrough = require('stream').PassThrough;\n\nmodule.exports = DecompressStream;\n\nfunction DecompressStream(inputStream, options) {\n options = options || {};\n var selectorStream = new StreamSelector({\n minBuffer: 6,\n selector: selector\n });\n selectorStream.on('error', function (err) {\n throw err;\n });\n inputStream.pipe(selectorStream);\n return new ReaderStream(selectorStream, options);\n\n function selector(chunk) {\n var type = fileType(chunk);\n\n if (!type) {\n return new PassThrough();\n }\n\n switch (type.ext) {\n case '7z':\n // return lz4.createDecoderStream();\n throw new Error('No streaming 7z decompressor yet');\n\n case 'bz2':\n return new bz2();\n\n case 'gz':\n return zlib.createGunzip();\n\n default:\n console.log('Unknown file format', type);\n return new PassThrough();\n }\n }\n}","var CapnpStream = require('capnp-split');\n\nvar EventWrapper = require('./event');\n\nvar Event = require('geval/event');\n\nmodule.exports = streamReader;\n\nfunction streamReader(inputStream, options) {\n options = options || {};\n var event = Event();\n var capnpStream = new CapnpStream();\n var isBinary = !!options.binary;\n var isStarted = false;\n capnpStream.on('message', function (buf) {\n if (!isBinary) {\n event.broadcast(new EventWrapper(buf).toJSON());\n } else {\n event.broadcast(buf);\n }\n });\n return pipeAndListen;\n\n function pipeAndListen(fn) {\n if (!isStarted) {\n isStarted = true;\n inputStream.pipe(capnpStream);\n }\n\n return event.listen(fn);\n }\n}","'use strict';\n\nvar CapnpSteam = require('./stream');\n\nvar buffUtil = require('./buffer');\n\nmodule.exports = CapnpSteam;\nmodule.exports.readSize = buffUtil.readSize;\nmodule.exports.readMessage = buffUtil.readMessage;","'use strict';\n\nvar stream = require('stream');\n\nvar util = require('util');\n\nvar buffUtil = require('./buffer');\n\nmodule.exports = CapnpStream;\nutil.inherits(CapnpStream, stream.Writable);\n\nfunction CapnpStream() {\n stream.Writable.call(this);\n this.curBuffer = null;\n}\n\nCapnpStream.prototype.readNextMessage = function () {\n if (this.curBuffer.byteLength < 8) {\n return false;\n }\n\n var size = buffUtil.readSize(this.curBuffer);\n\n if (!size || size > this.curBuffer.byteLength) {\n return false;\n }\n\n this.emit('message', this.curBuffer.slice(0, size));\n this.curBuffer = this.curBuffer.slice(size);\n return true;\n};\n\nCapnpStream.prototype._write = function (chunk, encoding, done) {\n if (!this.curBuffer) {\n this.curBuffer = chunk;\n } else if (chunk.byteLength || chunk.length) {\n this.curBuffer = Buffer.concat([this.curBuffer, chunk]);\n }\n\n while (this.readNextMessage()) {}\n\n done();\n};","'use strict';\n\nexports.byteLength = byteLength;\nexports.toByteArray = toByteArray;\nexports.fromByteArray = fromByteArray;\nvar lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n} // Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\n\n\nrevLookup['-'.charCodeAt(0)] = 62;\nrevLookup['_'.charCodeAt(0)] = 63;\n\nfunction getLens(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n\n\n var validLen = b64.indexOf('=');\n if (validLen === -1) validLen = len;\n var placeHoldersLen = validLen === len ? 0 : 4 - validLen % 4;\n return [validLen, placeHoldersLen];\n} // base64 is 4/3 + up to two characters of the original data\n\n\nfunction byteLength(b64) {\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction _byteLength(b64, validLen, placeHoldersLen) {\n return (validLen + placeHoldersLen) * 3 / 4 - placeHoldersLen;\n}\n\nfunction toByteArray(b64) {\n var tmp;\n var lens = getLens(b64);\n var validLen = lens[0];\n var placeHoldersLen = lens[1];\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen));\n var curByte = 0; // if there are placeholders, only get up to the last complete 4 chars\n\n var len = placeHoldersLen > 0 ? validLen - 4 : validLen;\n var i;\n\n for (i = 0; i < len; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[curByte++] = tmp >> 16 & 0xFF;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[curByte++] = tmp & 0xFF;\n }\n\n if (placeHoldersLen === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[curByte++] = tmp >> 8 & 0xFF;\n arr[curByte++] = tmp & 0xFF;\n }\n\n return arr;\n}\n\nfunction tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n}\n\nfunction encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16 & 0xFF0000) + (uint8[i + 1] << 8 & 0xFF00) + (uint8[i + 2] & 0xFF);\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n}\n\nfunction fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n parts.push(lookup[tmp >> 2] + lookup[tmp << 4 & 0x3F] + '==');\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n parts.push(lookup[tmp >> 10] + lookup[tmp >> 4 & 0x3F] + lookup[tmp << 2 & 0x3F] + '=');\n }\n\n return parts.join('');\n}","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n};\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n};","'use strict';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({\n length: this.length\n });\n return this.constructor.name + ' ' + obj;\n };\n}","var scope = typeof global !== \"undefined\" && global || typeof self !== \"undefined\" && self || window;\nvar apply = Function.prototype.apply; // DOM APIs, for completeness\n\nexports.setTimeout = function () {\n return new Timeout(apply.call(setTimeout, scope, arguments), clearTimeout);\n};\n\nexports.setInterval = function () {\n return new Timeout(apply.call(setInterval, scope, arguments), clearInterval);\n};\n\nexports.clearTimeout = exports.clearInterval = function (timeout) {\n if (timeout) {\n timeout.close();\n }\n};\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\n\nTimeout.prototype.unref = Timeout.prototype.ref = function () {};\n\nTimeout.prototype.close = function () {\n this._clearFn.call(scope, this._id);\n}; // Does not start the time, just sets up the members needed.\n\n\nexports.enroll = function (item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function (item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function (item) {\n clearTimeout(item._idleTimeoutId);\n var msecs = item._idleTimeout;\n\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout) item._onTimeout();\n }, msecs);\n }\n}; // setimmediate attaches itself to the global object\n\n\nrequire(\"setimmediate\"); // On some exotic environments, it's not clear which object `setimmediate` was\n// able to install onto. Search each possibility in the same order as the\n// `setimmediate` library.\n\n\nexports.setImmediate = typeof self !== \"undefined\" && self.setImmediate || typeof global !== \"undefined\" && global.setImmediate || this && this.setImmediate;\nexports.clearImmediate = typeof self !== \"undefined\" && self.clearImmediate || typeof global !== \"undefined\" && global.clearImmediate || this && this.clearImmediate;","(function (global, undefined) {\n \"use strict\";\n\n if (global.setImmediate) {\n return;\n }\n\n var nextHandle = 1; // Spec says greater than zero\n\n var tasksByHandle = {};\n var currentlyRunningATask = false;\n var doc = global.document;\n var registerImmediate;\n\n function setImmediate(callback) {\n // Callback can either be a function or a string\n if (typeof callback !== \"function\") {\n callback = new Function(\"\" + callback);\n } // Copy function arguments\n\n\n var args = new Array(arguments.length - 1);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i + 1];\n } // Store and register the task\n\n\n var task = {\n callback: callback,\n args: args\n };\n tasksByHandle[nextHandle] = task;\n registerImmediate(nextHandle);\n return nextHandle++;\n }\n\n function clearImmediate(handle) {\n delete tasksByHandle[handle];\n }\n\n function run(task) {\n var callback = task.callback;\n var args = task.args;\n\n switch (args.length) {\n case 0:\n callback();\n break;\n\n case 1:\n callback(args[0]);\n break;\n\n case 2:\n callback(args[0], args[1]);\n break;\n\n case 3:\n callback(args[0], args[1], args[2]);\n break;\n\n default:\n callback.apply(undefined, args);\n break;\n }\n }\n\n function runIfPresent(handle) {\n // From the spec: \"Wait until any invocations of this algorithm started before this one have completed.\"\n // So if we're currently running a task, we'll need to delay this invocation.\n if (currentlyRunningATask) {\n // Delay by doing a setTimeout. setImmediate was tried instead, but in Firefox 7 it generated a\n // \"too much recursion\" error.\n setTimeout(runIfPresent, 0, handle);\n } else {\n var task = tasksByHandle[handle];\n\n if (task) {\n currentlyRunningATask = true;\n\n try {\n run(task);\n } finally {\n clearImmediate(handle);\n currentlyRunningATask = false;\n }\n }\n }\n }\n\n function installNextTickImplementation() {\n registerImmediate = function registerImmediate(handle) {\n process.nextTick(function () {\n runIfPresent(handle);\n });\n };\n }\n\n function canUsePostMessage() {\n // The test against `importScripts` prevents this implementation from being installed inside a web worker,\n // where `global.postMessage` means something completely different and can't be used for this purpose.\n if (global.postMessage && !global.importScripts) {\n var postMessageIsAsynchronous = true;\n var oldOnMessage = global.onmessage;\n\n global.onmessage = function () {\n postMessageIsAsynchronous = false;\n };\n\n global.postMessage(\"\", \"*\");\n global.onmessage = oldOnMessage;\n return postMessageIsAsynchronous;\n }\n }\n\n function installPostMessageImplementation() {\n // Installs an event handler on `global` for the `message` event: see\n // * https://developer.mozilla.org/en/DOM/window.postMessage\n // * http://www.whatwg.org/specs/web-apps/current-work/multipage/comms.html#crossDocumentMessages\n var messagePrefix = \"setImmediate$\" + Math.random() + \"$\";\n\n var onGlobalMessage = function onGlobalMessage(event) {\n if (event.source === global && typeof event.data === \"string\" && event.data.indexOf(messagePrefix) === 0) {\n runIfPresent(+event.data.slice(messagePrefix.length));\n }\n };\n\n if (global.addEventListener) {\n global.addEventListener(\"message\", onGlobalMessage, false);\n } else {\n global.attachEvent(\"onmessage\", onGlobalMessage);\n }\n\n registerImmediate = function registerImmediate(handle) {\n global.postMessage(messagePrefix + handle, \"*\");\n };\n }\n\n function installMessageChannelImplementation() {\n var channel = new MessageChannel();\n\n channel.port1.onmessage = function (event) {\n var handle = event.data;\n runIfPresent(handle);\n };\n\n registerImmediate = function registerImmediate(handle) {\n channel.port2.postMessage(handle);\n };\n }\n\n function installReadyStateChangeImplementation() {\n var html = doc.documentElement;\n\n registerImmediate = function registerImmediate(handle) {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var script = doc.createElement(\"script\");\n\n script.onreadystatechange = function () {\n runIfPresent(handle);\n script.onreadystatechange = null;\n html.removeChild(script);\n script = null;\n };\n\n html.appendChild(script);\n };\n }\n\n function installSetTimeoutImplementation() {\n registerImmediate = function registerImmediate(handle) {\n setTimeout(runIfPresent, 0, handle);\n };\n } // If supported, we should attach to the prototype of global, since that is where setTimeout et al. live.\n\n\n var attachTo = Object.getPrototypeOf && Object.getPrototypeOf(global);\n attachTo = attachTo && attachTo.setTimeout ? attachTo : global; // Don't get fooled by e.g. browserify environments.\n\n if ({}.toString.call(global.process) === \"[object process]\") {\n // For Node.js before 0.9\n installNextTickImplementation();\n } else if (canUsePostMessage()) {\n // For non-IE10 modern browsers\n installPostMessageImplementation();\n } else if (global.MessageChannel) {\n // For web workers, where supported\n installMessageChannelImplementation();\n } else if (doc && \"onreadystatechange\" in doc.createElement(\"script\")) {\n // For IE 6–8\n installReadyStateChangeImplementation();\n } else {\n // For older browsers\n installSetTimeoutImplementation();\n }\n\n attachTo.setImmediate = setImmediate;\n attachTo.clearImmediate = clearImmediate;\n})(typeof self === \"undefined\" ? typeof global === \"undefined\" ? this : global : self);","/**\n * Module exports.\n */\nmodule.exports = deprecate;\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate(fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\n\nfunction config(name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer');\n\nvar Buffer = buffer.Buffer; // alternative to using Object.keys for old browsers\n\nfunction copyProps(src, dst) {\n for (var key in src) {\n dst[key] = src[key];\n }\n}\n\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer;\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports);\n exports.Buffer = SafeBuffer;\n}\n\nfunction SafeBuffer(arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length);\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype); // Copy static methods from Buffer\n\ncopyProps(Buffer, SafeBuffer);\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number');\n }\n\n return Buffer(arg, encodingOrOffset, length);\n};\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n var buf = Buffer(size);\n\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding);\n } else {\n buf.fill(fill);\n }\n } else {\n buf.fill(0);\n }\n\n return buf;\n};\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return Buffer(size);\n};\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number');\n }\n\n return buffer.SlowBuffer(size);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n/*<replacement>*/\n\n\nvar util = require('core-util-is');\n\nutil.inherits = require('inherits');\n/*</replacement>*/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","module.exports = require('./lib/_stream_writable.js');","module.exports = require('./lib/_stream_duplex.js');","module.exports = require('./readable').Transform;","module.exports = require('./readable').PassThrough;","module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n};","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\ntslib_1.__exportStar(require(\"./mask\"), exports);\n\nvar list_element_size_1 = require(\"./list-element-size\");\n\nexports.ListElementSize = list_element_size_1.ListElementSize;\n\nvar message_1 = require(\"./message\");\n\nexports.Message = message_1.Message;\n\nvar object_size_1 = require(\"./object-size\");\n\nexports.ObjectSize = object_size_1.ObjectSize;\n\ntslib_1.__exportStar(require(\"./pointers\"), exports);","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nfunction _makePrimitiveMaskFn(byteLength, setter) {\n return function (x) {\n var dv = new DataView(new ArrayBuffer(byteLength));\n setter.call(dv, 0, x, true);\n return dv;\n };\n}\n/* tslint:disable:no-unsafe-any */\n\n\nexports.getFloat32Mask = _makePrimitiveMaskFn(4, DataView.prototype.setFloat32);\nexports.getFloat64Mask = _makePrimitiveMaskFn(8, DataView.prototype.setFloat64);\nexports.getInt16Mask = _makePrimitiveMaskFn(2, DataView.prototype.setInt16);\nexports.getInt32Mask = _makePrimitiveMaskFn(4, DataView.prototype.setInt32);\nexports.getInt8Mask = _makePrimitiveMaskFn(1, DataView.prototype.setInt8);\nexports.getUint16Mask = _makePrimitiveMaskFn(2, DataView.prototype.setUint16);\nexports.getUint32Mask = _makePrimitiveMaskFn(4, DataView.prototype.setUint32);\nexports.getUint8Mask = _makePrimitiveMaskFn(1, DataView.prototype.setUint8);\n/* tslint:enable:no-unsafe-any */\n\nfunction getBitMask(value, bitOffset) {\n var dv = new DataView(new ArrayBuffer(1));\n if (!value) return dv;\n dv.setUint8(0, 1 << bitOffset % 8);\n return dv;\n}\n\nexports.getBitMask = getBitMask;\n\nfunction getInt64Mask(x) {\n return x.toDataView();\n}\n\nexports.getInt64Mask = getInt64Mask;\n\nfunction getUint64Mask(x) {\n return x.toDataView();\n}\n\nexports.getUint64Mask = getUint64Mask;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../constants\");\n\nvar errors_1 = require(\"../errors\");\n\nvar util_1 = require(\"../util\");\n\nvar arena_1 = require(\"./arena\");\n\nvar packing_1 = require(\"./packing\");\n\nvar pointers_1 = require(\"./pointers\");\n\nvar segment_1 = require(\"./segment\");\n\nvar pointer_1 = require(\"./pointers/pointer\");\n\nvar struct_1 = require(\"./pointers/struct\");\n\nvar trace = debug_1.default('capnp:message');\ntrace('load');\n\nvar Message =\n/** @class */\nfunction () {\n /**\n * A Cap'n Proto message.\n *\n * SECURITY WARNING: In nodejs do not pass a Buffer's internal array buffer into this constructor. Pass the buffer\n * directly and everything will be fine. If not, your message will potentially be initialized with random memory\n * contents!\n *\n * The constructor method creates a new Message, optionally using a provided arena for segment allocation, or a buffer\n * to read from.\n *\n * @constructor {Message}\n *\n * @param {AnyArena|ArrayBufferView|ArrayBuffer} [src] The source for the message.\n * A value of `undefined` will cause the message to initialize with a single segment arena only big enough for the\n * root pointer; it will expand as you go. This is a reasonable choice for most messages.\n *\n * Passing an arena will cause the message to use that arena for its segment allocation. Contents will be accepted\n * as-is.\n *\n * Passing an array buffer view (like `DataView`, `Uint8Array` or `Buffer`) will create a **copy** of the source\n * buffer; beware of the potential performance cost!\n *\n * @param {boolean} [packed] Whether or not the message is packed. If `true` (the default), the message will be\n * unpacked.\n *\n * @param {boolean} [singleSegment] If true, `src` will be treated as a message consisting of a single segment without\n * a framing header.\n *\n */\n function Message(src, packed, singleSegment) {\n if (packed === void 0) {\n packed = true;\n }\n\n if (singleSegment === void 0) {\n singleSegment = false;\n }\n\n this._capnp = initMessage(src, packed, singleSegment);\n if (src && !isAnyArena(src)) preallocateSegments(this);\n trace('new %s', this);\n }\n\n Message.prototype.allocateSegment = function (byteLength) {\n return allocateSegment(byteLength, this);\n };\n /**\n * Create a pretty-printed string dump of this message; incredibly useful for debugging.\n *\n * WARNING: Do not call this method on large messages!\n *\n * @returns {string} A big steaming pile of pretty hex digits.\n */\n\n\n Message.prototype.dump = function () {\n return dump(this);\n };\n /**\n * Get a struct pointer for the root of this message. This is primarily used when reading a message; it will not\n * overwrite existing data.\n *\n * @template T\n * @param {StructCtor<T>} RootStruct The struct type to use as the root.\n * @returns {T} A struct representing the root of the message.\n */\n\n\n Message.prototype.getRoot = function (RootStruct) {\n return getRoot(RootStruct, this);\n };\n /**\n * Get a segment by its id.\n *\n * This will lazily allocate the first segment if it doesn't already exist.\n *\n * @param {number} id The segment id.\n * @returns {Segment} The requested segment.\n */\n\n\n Message.prototype.getSegment = function (id) {\n return getSegment(id, this);\n };\n /**\n * Initialize a new message using the provided struct type as the root.\n *\n * @template T\n * @param {StructCtor<T>} RootStruct The struct type to use as the root.\n * @returns {T} An initialized struct pointing to the root of the message.\n */\n\n\n Message.prototype.initRoot = function (RootStruct) {\n return initRoot(RootStruct, this);\n };\n /**\n * Combine the contents of this message's segments into a single array buffer and prepend a stream framing header\n * containing information about the following segment data.\n *\n * @returns {ArrayBuffer} An ArrayBuffer with the contents of this message.\n */\n\n\n Message.prototype.toArrayBuffer = function () {\n return toArrayBuffer(this);\n };\n /**\n * Like `toArrayBuffer()`, but also applies the packing algorithm to the output. This is typically what you want to\n * use if you're sending the message over a network link or other slow I/O interface where size matters.\n *\n * @returns {ArrayBuffer} A packed message.\n */\n\n\n Message.prototype.toPackedArrayBuffer = function () {\n return toPackedArrayBuffer(this);\n };\n\n Message.prototype.toString = function () {\n return \"Message_arena:\" + this._capnp.arena;\n };\n\n Message.allocateSegment = allocateSegment;\n Message.dump = dump;\n Message.getRoot = getRoot;\n Message.getSegment = getSegment;\n Message.initRoot = initRoot;\n Message.toArrayBuffer = toArrayBuffer;\n Message.toPackedArrayBuffer = toPackedArrayBuffer;\n return Message;\n}();\n\nexports.Message = Message;\n\nfunction initMessage(src, packed, singleSegment) {\n if (packed === void 0) {\n packed = true;\n }\n\n if (singleSegment === void 0) {\n singleSegment = false;\n }\n\n if (src === undefined) {\n return {\n arena: new arena_1.SingleSegmentArena(),\n segments: [],\n traversalLimit: constants_1.DEFAULT_TRAVERSE_LIMIT\n };\n }\n\n if (isAnyArena(src)) return {\n arena: src,\n segments: [],\n traversalLimit: constants_1.DEFAULT_TRAVERSE_LIMIT\n };\n var buf = src;\n if (isArrayBufferView(buf)) buf = buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n if (packed) buf = packing_1.unpack(buf);\n\n if (singleSegment) {\n return {\n arena: new arena_1.SingleSegmentArena(buf),\n segments: [],\n traversalLimit: constants_1.DEFAULT_TRAVERSE_LIMIT\n };\n }\n\n return {\n arena: new arena_1.MultiSegmentArena(getFramedSegments(buf)),\n segments: [],\n traversalLimit: constants_1.DEFAULT_TRAVERSE_LIMIT\n };\n}\n\nexports.initMessage = initMessage;\n/**\n * Given an _unpacked_ message with a segment framing header, this will generate an ArrayBuffer for each segment in\n * the message.\n *\n * This method is not typically called directly, but can be useful in certain cases.\n *\n * @static\n * @param {ArrayBuffer} message An unpacked message with a framing header.\n * @returns {ArrayBuffer[]} An array of buffers containing the segment data.\n */\n\nfunction getFramedSegments(message) {\n var dv = new DataView(message);\n var segmentCount = dv.getUint32(0, true) + 1;\n var segments = new Array(segmentCount);\n trace('reading %d framed segments from stream', segmentCount);\n var byteOffset = 4 + segmentCount * 4;\n byteOffset += byteOffset % 8;\n if (byteOffset + segmentCount * 4 > message.byteLength) throw new Error(errors_1.MSG_INVALID_FRAME_HEADER);\n\n for (var i = 0; i < segmentCount; i++) {\n var byteLength = dv.getUint32(4 + i * 4, true) * 8;\n if (byteOffset + byteLength > message.byteLength) throw new Error(errors_1.MSG_INVALID_FRAME_HEADER);\n segments[i] = message.slice(byteOffset, byteOffset + byteLength);\n byteOffset += byteLength;\n }\n\n return segments;\n}\n\nexports.getFramedSegments = getFramedSegments;\n/**\n * This method is called on messages that were constructed with existing data to prepopulate the segments array with\n * everything we can find in the arena. Each segment will have it's `byteLength` set to the size of its buffer.\n *\n * Technically speaking, the message's segments will be \"full\" after calling this function. Calling this on your own\n * may void your warranty.\n *\n * @param {Message} m The message to allocate.\n * @returns {void}\n */\n\nfunction preallocateSegments(m) {\n var numSegments = arena_1.Arena.getNumSegments(m._capnp.arena);\n if (numSegments < 1) throw new Error(errors_1.MSG_NO_SEGMENTS_IN_ARENA);\n m._capnp.segments = new Array(numSegments);\n\n for (var i = 0; i < numSegments; i++) {\n // Set up each segment so that they're fully allocated to the extents of the existing buffers.\n var buffer = arena_1.Arena.getBuffer(i, m._capnp.arena);\n var segment = new segment_1.Segment(i, m, buffer, buffer.byteLength);\n m._capnp.segments[i] = segment;\n }\n}\n\nexports.preallocateSegments = preallocateSegments;\n\nfunction isArrayBufferView(src) {\n return src.byteOffset !== undefined;\n}\n\nfunction isAnyArena(o) {\n return o.kind !== undefined;\n}\n\nfunction allocateSegment(byteLength, m) {\n trace('allocating %x bytes for %s', byteLength, m);\n var res = arena_1.Arena.allocate(byteLength, m._capnp.segments, m._capnp.arena);\n var s;\n\n if (res.id === m._capnp.segments.length) {\n // Note how we're only allowing new segments in if they're exactly the next one in the array. There is no logical\n // reason for segments to be created out of order.\n s = new segment_1.Segment(res.id, m, res.buffer);\n trace('adding new segment %s', s);\n\n m._capnp.segments.push(s);\n } else if (res.id < 0 || res.id > m._capnp.segments.length) {\n throw new Error(util_1.format(errors_1.MSG_SEGMENT_OUT_OF_BOUNDS, res.id, m));\n } else {\n s = m._capnp.segments[res.id];\n trace('replacing segment %s with buffer (len:%d)', s, res.buffer.byteLength);\n s.replaceBuffer(res.buffer);\n }\n\n return s;\n}\n\nexports.allocateSegment = allocateSegment;\n\nfunction dump(m) {\n var r = '';\n if (m._capnp.segments.length === 0) return '================\\nNo Segments\\n================\\n';\n\n for (var i = 0; i < m._capnp.segments.length; i++) {\n r += \"================\\nSegment #\" + i + \"\\n================\\n\";\n var _a = m._capnp.segments[i],\n buffer = _a.buffer,\n byteLength = _a.byteLength;\n var b = new Uint8Array(buffer, 0, byteLength);\n r += util_1.dumpBuffer(b);\n }\n\n return r;\n}\n\nexports.dump = dump;\n\nfunction getRoot(RootStruct, m) {\n var root = new RootStruct(m.getSegment(0), 0);\n pointer_1.validate(pointers_1.PointerType.STRUCT, root);\n var ts = pointer_1.getTargetStructSize(root); // Make sure the underlying pointer is actually big enough to hold the data and pointers as specified in the schema.\n // If not a shallow copy of the struct contents needs to be made before returning.\n\n if (ts.dataByteLength < RootStruct._capnp.size.dataByteLength || ts.pointerLength < RootStruct._capnp.size.pointerLength) {\n trace('need to resize root struct %s', root);\n struct_1.resize(RootStruct._capnp.size, root);\n }\n\n return root;\n}\n\nexports.getRoot = getRoot;\n\nfunction getSegment(id, m) {\n var segmentLength = m._capnp.segments.length;\n\n if (id === 0 && segmentLength === 0) {\n // Segment zero is special. If we have no segments in the arena we'll want to allocate a new one and leave room\n // for the root pointer.\n var arenaSegments = arena_1.Arena.getNumSegments(m._capnp.arena);\n\n if (arenaSegments === 0) {\n allocateSegment(constants_1.DEFAULT_BUFFER_SIZE, m);\n } else {\n // Okay, the arena already has a buffer we can use. This is totally fine.\n m._capnp.segments[0] = new segment_1.Segment(0, m, arena_1.Arena.getBuffer(0, m._capnp.arena));\n }\n\n if (!m._capnp.segments[0].hasCapacity(8)) throw new Error(errors_1.MSG_SEGMENT_TOO_SMALL); // This will leave room for the root pointer.\n\n m._capnp.segments[0].allocate(8);\n\n return m._capnp.segments[0];\n }\n\n if (id < 0 || id >= segmentLength) throw new Error(util_1.format(errors_1.MSG_SEGMENT_OUT_OF_BOUNDS, id, m));\n return m._capnp.segments[id];\n}\n\nexports.getSegment = getSegment;\n\nfunction initRoot(RootStruct, m) {\n var root = new RootStruct(m.getSegment(0), 0);\n struct_1.initStruct(RootStruct._capnp.size, root);\n trace('Initialized root pointer %s for %s.', root, m);\n return root;\n}\n\nexports.initRoot = initRoot;\n\nfunction toArrayBuffer(m) {\n var streamFrame = getStreamFrame(m); // Make sure the first segment is allocated.\n\n if (m._capnp.segments.length === 0) getSegment(0, m);\n var segments = m._capnp.segments; // Add space for the stream framing.\n\n var totalLength = streamFrame.byteLength + segments.reduce(function (l, s) {\n return l + util_1.padToWord(s.byteLength);\n }, 0);\n var out = new Uint8Array(new ArrayBuffer(totalLength));\n var o = streamFrame.byteLength;\n out.set(new Uint8Array(streamFrame));\n segments.forEach(function (s) {\n var segmentLength = util_1.padToWord(s.byteLength);\n out.set(new Uint8Array(s.buffer, 0, segmentLength), o);\n o += segmentLength;\n });\n return out.buffer;\n}\n\nexports.toArrayBuffer = toArrayBuffer;\n\nfunction toPackedArrayBuffer(m) {\n var streamFrame = packing_1.pack(getStreamFrame(m)); // Make sure the first segment is allocated.\n\n if (m._capnp.segments.length === 0) m.getSegment(0); // NOTE: A copy operation can be avoided here if we capture the intermediate array and use that directly in the copy\n // loop below, rather than have `pack()` copy it to an ArrayBuffer just to have to copy it again later. If the\n // intermediate array can be avoided altogether that's even better!\n\n var segments = m._capnp.segments.map(function (s) {\n return packing_1.pack(s.buffer, 0, util_1.padToWord(s.byteLength));\n });\n\n var totalLength = streamFrame.byteLength + segments.reduce(function (l, s) {\n return l + s.byteLength;\n }, 0);\n var out = new Uint8Array(new ArrayBuffer(totalLength));\n var o = streamFrame.byteLength;\n out.set(new Uint8Array(streamFrame));\n segments.forEach(function (s) {\n out.set(new Uint8Array(s), o);\n o += s.byteLength;\n });\n return out.buffer;\n}\n\nexports.toPackedArrayBuffer = toPackedArrayBuffer;\n\nfunction getStreamFrame(m) {\n var length = m._capnp.segments.length;\n\n if (length === 0) {\n // Don't bother allocating the first segment, just return a single zero word for the frame header.\n return new Float64Array(1).buffer;\n }\n\n var frameLength = 4 + length * 4 + (1 - length % 2) * 4;\n var out = new DataView(new ArrayBuffer(frameLength));\n trace('Writing message stream frame with segment count: %d.', length);\n out.setUint32(0, length - 1, true);\n\n m._capnp.segments.forEach(function (s, i) {\n trace('Message segment %d word count: %d.', s.id, s.byteLength / 8);\n out.setUint32(i * 4 + 4, s.byteLength / 8, true);\n });\n\n return out.buffer;\n}\n\nexports.getStreamFrame = getStreamFrame;","/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0,\n i;\n\n for (i in namespace) {\n hash = (hash << 5) - hash + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\n\nfunction createDebug(namespace) {\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n var self = debug; // set `diff` timestamp\n\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr; // turn the `arguments` into a proper Array\n\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n } // apply any `formatters` transformations\n\n\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function (match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val); // now we need to remove `args[index]` since it's inlined in the `format`\n\n args.splice(index, 1);\n index--;\n }\n\n return match;\n }); // apply env-specific formatting (colors, etc.)\n\n exports.formatArgs.call(self, args);\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace); // env-specific initialization logic for debug instances\n\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n exports.names = [];\n exports.skips = [];\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n\n namespaces = split[i].replace(/\\*/g, '.*?');\n\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n/**\n * Disable debug output.\n *\n * @api public\n */\n\n\nfunction disable() {\n exports.enable('');\n}\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\n\nfunction enabled(name) {\n var i, len;\n\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}","/**\n * Helpers.\n */\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function (val, options) {\n options = options || {};\n var type = typeof val;\n\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n\n throw new Error('val is not a non-empty string or a valid number. val=' + JSON.stringify(val));\n};\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\n\nfunction parse(str) {\n str = String(str);\n\n if (str.length > 100) {\n return;\n }\n\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(str);\n\n if (!match) {\n return;\n }\n\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n\n default:\n return undefined;\n }\n}\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n\n return ms + 'ms';\n}\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') || plural(ms, h, 'hour') || plural(ms, m, 'minute') || plural(ms, s, 'second') || ms + ' ms';\n}\n/**\n * Pluralization helper.\n */\n\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n\n return Math.ceil(ms / n) + ' ' + name + 's';\n}","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar arena_1 = require(\"./arena\");\n\nexports.Arena = arena_1.Arena;\n\nvar arena_kind_1 = require(\"./arena-kind\");\n\nexports.ArenaKind = arena_kind_1.ArenaKind;\n\nvar multi_segment_arena_1 = require(\"./multi-segment-arena\");\n\nexports.MultiSegmentArena = multi_segment_arena_1.MultiSegmentArena;\n\nvar single_segment_arena_1 = require(\"./single-segment-arena\");\n\nexports.SingleSegmentArena = single_segment_arena_1.SingleSegmentArena;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar errors_1 = require(\"../../errors\");\n\nvar arena_kind_1 = require(\"./arena-kind\");\n\nvar multi_segment_arena_1 = require(\"./multi-segment-arena\");\n\nvar single_segment_arena_1 = require(\"./single-segment-arena\");\n\nvar trace = debug_1.default('capnp:arena');\ntrace('load');\n\nvar Arena =\n/** @class */\nfunction () {\n function Arena() {}\n\n Arena.allocate = allocate;\n Arena.getBuffer = getBuffer;\n Arena.getNumSegments = getNumSegments;\n return Arena;\n}();\n\nexports.Arena = Arena;\n\nfunction allocate(minSize, segments, a) {\n switch (a.kind) {\n case arena_kind_1.ArenaKind.MULTI_SEGMENT:\n return multi_segment_arena_1.MultiSegmentArena.allocate(minSize, a);\n\n case arena_kind_1.ArenaKind.SINGLE_SEGMENT:\n return single_segment_arena_1.SingleSegmentArena.allocate(minSize, segments, a);\n\n default:\n return errors_1.assertNever(a);\n }\n}\n\nexports.allocate = allocate;\n\nfunction getBuffer(id, a) {\n switch (a.kind) {\n case arena_kind_1.ArenaKind.MULTI_SEGMENT:\n return multi_segment_arena_1.MultiSegmentArena.getBuffer(id, a);\n\n case arena_kind_1.ArenaKind.SINGLE_SEGMENT:\n return single_segment_arena_1.SingleSegmentArena.getBuffer(id, a);\n\n default:\n return errors_1.assertNever(a);\n }\n}\n\nexports.getBuffer = getBuffer;\n\nfunction getNumSegments(a) {\n switch (a.kind) {\n case arena_kind_1.ArenaKind.MULTI_SEGMENT:\n return multi_segment_arena_1.MultiSegmentArena.getNumSegments(a);\n\n case arena_kind_1.ArenaKind.SINGLE_SEGMENT:\n return single_segment_arena_1.SingleSegmentArena.getNumSegments();\n\n default:\n return errors_1.assertNever(a);\n }\n}\n\nexports.getNumSegments = getNumSegments;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar constants_1 = require(\"../constants\");\n\nvar errors_1 = require(\"../errors\");\n/**\n * Compute the Hamming weight (number of bits set to 1) of a number. Used to figure out how many bytes follow a tag byte\n * while computing the size of a packed message.\n *\n * WARNING: Using this with floating point numbers will void your warranty.\n *\n * @param {number} x A real integer.\n * @returns {number} The hamming weight (integer).\n */\n\n\nfunction getHammingWeight(x) {\n // Thanks, HACKMEM!\n var w = x - (x >> 1 & 0x55555555);\n w = (w & 0x33333333) + (w >> 2 & 0x33333333);\n return (w + (w >> 4) & 0x0f0f0f0f) * 0x01010101 >> 24;\n}\n\nexports.getHammingWeight = getHammingWeight;\n/**\n * Compute the tag byte from the 8 bytes of a 64-bit word.\n *\n * @param {byte} a The first byte.\n * @param {byte} b The second byte.\n * @param {byte} c The third byte.\n * @param {byte} d The fourth byte.\n * @param {byte} e The fifth byte.\n * @param {byte} f The sixth byte.\n * @param {byte} g The seventh byte.\n * @param {byte} h The eighth byte (phew!).\n * @returns {number} The tag byte.\n */\n\nfunction getTagByte(a, b, c, d, e, f, g, h) {\n // Yes, it's pretty. Don't touch it.\n return (a === 0 ? 0 : 1) | (b === 0 ? 0 : 2) | (c === 0 ? 0 : 4) | (d === 0 ? 0 : 8) | (e === 0 ? 0 : 16) | (f === 0 ? 0 : 32) | (g === 0 ? 0 : 64) | (h === 0 ? 0 : 128);\n}\n\nexports.getTagByte = getTagByte;\n/**\n * Efficiently calculate the length of a packed Cap'n Proto message.\n *\n * @export\n * @param {ArrayBuffer} packed The packed message.\n * @returns {number} The length of the unpacked message in bytes.\n */\n\nfunction getUnpackedByteLength(packed) {\n var p = new Uint8Array(packed);\n var wordLength = 0;\n var lastTag = 0x77;\n\n for (var i = 0; i < p.byteLength;) {\n var tag = p[i];\n\n if (lastTag === 0\n /* ZERO */\n ) {\n wordLength += tag;\n i++;\n lastTag = 0x77;\n } else if (lastTag === 255\n /* SPAN */\n ) {\n wordLength += tag;\n i += tag * 8 + 1;\n lastTag = 0x77;\n } else {\n wordLength++;\n i += getHammingWeight(tag) + 1;\n lastTag = tag;\n }\n }\n\n return wordLength * 8;\n}\n\nexports.getUnpackedByteLength = getUnpackedByteLength;\n/**\n * Compute the number of zero bytes that occur in a given 64-bit word, provided as eight separate bytes.\n *\n * @param {byte} a The first byte.\n * @param {byte} b The second byte.\n * @param {byte} c The third byte.\n * @param {byte} d The fourth byte.\n * @param {byte} e The fifth byte.\n * @param {byte} f The sixth byte.\n * @param {byte} g The seventh byte.\n * @param {byte} h The eighth byte (phew!).\n * @returns {number} The number of these bytes that are zero.\n */\n\nfunction getZeroByteCount(a, b, c, d, e, f, g, h) {\n return (a === 0 ? 1 : 0) + (b === 0 ? 1 : 0) + (c === 0 ? 1 : 0) + (d === 0 ? 1 : 0) + (e === 0 ? 1 : 0) + (f === 0 ? 1 : 0) + (g === 0 ? 1 : 0) + (h === 0 ? 1 : 0);\n}\n\nexports.getZeroByteCount = getZeroByteCount;\n/**\n * Pack a section of a Cap'n Proto message into a compressed format. This will efficiently compress zero bytes (which\n * are common in idiomatic Cap'n Proto messages) into a compact form.\n *\n * For stream-framed messages this is called once for the frame header and once again for each segment in the message.\n *\n * The returned array buffer is trimmed to the exact size of the packed message with a single copy operation at the end.\n * This should be decent on CPU time but does require quite a lot of memory (a normal array is filled up with each\n * packed byte until the packing is complete).\n *\n * @export\n * @param {ArrayBuffer} unpacked The message to pack.\n * @param {number} [byteOffset] Starting byte offset to read bytes from, defaults to 0.\n * @param {number} [byteLength] Total number of bytes to read, defaults to the remainder of the buffer contents.\n * @returns {ArrayBuffer} A packed version of the message.\n */\n\nfunction pack(unpacked, byteOffset, byteLength) {\n if (byteOffset === void 0) {\n byteOffset = 0;\n }\n\n if (unpacked.byteLength % 8 !== 0) throw new Error(errors_1.MSG_PACK_NOT_WORD_ALIGNED);\n var src = new Uint8Array(unpacked, byteOffset, byteLength); // TODO: Maybe we should do this with buffers? This costs more than 8x the final compressed size in temporary RAM.\n\n var dst = [];\n /* Just have to be sure it's neither ZERO nor SPAN. */\n\n var lastTag = 0x77;\n /** This is where we need to remember to write the SPAN tag (0xff). */\n\n var spanTagOffset = NaN;\n /** How many words have been copied during the current span. */\n\n var spanWordLength = 0;\n /**\n * When this hits zero, we've had PACK_SPAN_THRESHOLD zero bytes pass by and it's time to bail from the span.\n */\n\n var spanThreshold = constants_1.PACK_SPAN_THRESHOLD;\n\n for (var srcByteOffset = 0; srcByteOffset < src.byteLength; srcByteOffset += 8) {\n /** Read in the entire word. Yes, this feels silly but it's fast! */\n var a = src[srcByteOffset];\n var b = src[srcByteOffset + 1];\n var c = src[srcByteOffset + 2];\n var d = src[srcByteOffset + 3];\n var e = src[srcByteOffset + 4];\n var f = src[srcByteOffset + 5];\n var g = src[srcByteOffset + 6];\n var h = src[srcByteOffset + 7];\n var tag = getTagByte(a, b, c, d, e, f, g, h);\n /** If this is true we'll skip the normal word write logic after the switch statement. */\n\n var skipWriteWord = true;\n\n switch (lastTag) {\n case 0\n /* ZERO */\n :\n // We're writing a span of words with all zeroes in them. See if we need to bail out of the fast path.\n if (tag !== 0\n /* ZERO */\n || spanWordLength >= 0xff) {\n // There's a bit in there or we got too many zeroes. Damn, we need to bail.\n dst.push(spanWordLength);\n spanWordLength = 0;\n skipWriteWord = false;\n } else {\n // Kay, let's quickly inc this and go.\n spanWordLength++;\n }\n\n break;\n\n case 255\n /* SPAN */\n :\n // We're writing a span of nonzero words.\n var zeroCount = getZeroByteCount(a, b, c, d, e, f, g, h); // See if we need to bail now.\n\n spanThreshold -= zeroCount;\n\n if (spanThreshold <= 0 || spanWordLength >= 0xff) {\n // Alright, time to get packing again. Write the number of words we skipped to the beginning of the span.\n dst[spanTagOffset] = spanWordLength;\n spanWordLength = 0;\n spanThreshold = constants_1.PACK_SPAN_THRESHOLD; // We have to write this word normally.\n\n skipWriteWord = false;\n } else {\n // Just write this word verbatim.\n dst.push(a, b, c, d, e, f, g, h);\n spanWordLength++;\n }\n\n break;\n\n default:\n // Didn't get a special tag last time, let's write this as normal.\n skipWriteWord = false;\n break;\n } // A goto is fast, idk why people keep hatin'.\n\n\n if (skipWriteWord) continue;\n dst.push(tag);\n lastTag = tag;\n if (a !== 0) dst.push(a);\n if (b !== 0) dst.push(b);\n if (c !== 0) dst.push(c);\n if (d !== 0) dst.push(d);\n if (e !== 0) dst.push(e);\n if (f !== 0) dst.push(f);\n if (g !== 0) dst.push(g);\n if (h !== 0) dst.push(h); // Record the span tag offset if needed, making sure to actually leave room for it.\n\n if (tag === 255\n /* SPAN */\n ) {\n spanTagOffset = dst.length;\n dst.push(0);\n }\n } // We're done. If we were writing a span let's finish it.\n\n\n if (lastTag === 0\n /* ZERO */\n ) {\n dst.push(spanWordLength);\n } else if (lastTag === 255\n /* SPAN */\n ) {\n dst[spanTagOffset] = spanWordLength;\n }\n\n return new Uint8Array(dst).buffer;\n}\n\nexports.pack = pack;\n/**\n * Unpack a compressed Cap'n Proto message into a new ArrayBuffer.\n *\n * Unlike the `pack` function, this is able to efficiently determine the exact size needed for the output buffer and\n * runs considerably more efficiently.\n *\n * @export\n * @param {ArrayBuffer} packed An array buffer containing the packed message.\n * @returns {ArrayBuffer} The unpacked message.\n */\n\nfunction unpack(packed) {\n // We have no choice but to read the packed buffer one byte at a time.\n var src = new Uint8Array(packed);\n var dst = new Uint8Array(new ArrayBuffer(getUnpackedByteLength(packed)));\n /** The last tag byte that we've seen - it starts at a \"neutral\" value. */\n\n var lastTag = 0x77;\n\n for (var srcByteOffset = 0, dstByteOffset = 0; srcByteOffset < src.byteLength;) {\n var tag = src[srcByteOffset];\n\n if (lastTag === 0\n /* ZERO */\n ) {\n // We have a span of zeroes. New array buffers are guaranteed to be initialized to zero so we just seek ahead.\n dstByteOffset += tag * 8;\n srcByteOffset++;\n lastTag = 0x77;\n } else if (lastTag === 255\n /* SPAN */\n ) {\n // We have a span of unpacked bytes. Copy them verbatim from the source buffer.\n var spanByteLength = tag * 8;\n dst.set(src.subarray(srcByteOffset + 1, srcByteOffset + 1 + spanByteLength), dstByteOffset);\n dstByteOffset += spanByteLength;\n srcByteOffset += 1 + spanByteLength;\n lastTag = 0x77;\n } else {\n // Okay, a normal tag. Let's read past the tag and copy bytes that have a bit set in the tag.\n srcByteOffset++;\n\n for (var i = 1; i <= 128; i <<= 1) {\n // We only need to actually touch `dst` if there's a nonzero byte (it's already initialized to zeroes).\n if ((tag & i) !== 0) dst[dstByteOffset] = src[srcByteOffset++];\n dstByteOffset++;\n }\n\n lastTag = tag;\n }\n }\n\n return dst.buffer;\n}\n\nexports.unpack = unpack;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar pointer_1 = require(\"./pointer\");\n\nvar pointer_list_1 = require(\"./pointer-list\");\n\nexports.AnyPointerList = pointer_list_1.PointerList(pointer_1.Pointer);","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar trace = debug_1.default('capnp:pointer-allocation-result');\ntrace('load');\n/**\n * This is used as the return value for `Pointer.prototype.initPointer`. Turns out using a class in V8 for multiple\n * return values is faster than using an array or anonymous object.\n *\n * http://jsben.ch/#/zTdbD\n *\n * @export\n * @class PointerAllocationResult\n */\n\nvar PointerAllocationResult =\n/** @class */\nfunction () {\n function PointerAllocationResult(pointer, offsetWords) {\n this.pointer = pointer;\n this.offsetWords = offsetWords;\n }\n\n return PointerAllocationResult;\n}();\n\nexports.PointerAllocationResult = PointerAllocationResult;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar BoolList =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(BoolList, _super);\n\n function BoolList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n BoolList.prototype.get = function (index) {\n var bitMask = 1 << index % 8;\n var byteOffset = index >>> 3;\n var c = pointer_1.getContent(this);\n var v = c.segment.getUint8(c.byteOffset + byteOffset);\n return (v & bitMask) !== 0;\n };\n\n BoolList.prototype.set = function (index, value) {\n var bitMask = 1 << index % 8;\n var c = pointer_1.getContent(this);\n var byteOffset = c.byteOffset + (index >>> 3);\n var v = c.segment.getUint8(byteOffset);\n c.segment.setUint8(byteOffset, value ? v | bitMask : v & ~bitMask);\n };\n\n BoolList.prototype.toString = function () {\n return \"Bool_\" + _super.prototype.toString.call(this);\n };\n\n BoolList._capnp = {\n displayName: 'List<boolean>',\n size: list_element_size_1.ListElementSize.BIT\n };\n return BoolList;\n}(list_1.List);\n\nexports.BoolList = BoolList;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nfunction CompositeList(CompositeClass) {\n return _a =\n /** @class */\n function (_super) {\n tslib_1.__extends(class_1, _super);\n\n function class_1() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n class_1.prototype.get = function (index) {\n return new CompositeClass(this.segment, this.byteOffset, this._capnp.depthLimit - 1, index);\n };\n\n class_1.prototype.set = function (index, value) {\n pointer_1.copyFrom(value, this.get(index));\n };\n\n class_1.prototype.toString = function () {\n return \"Composite_\" + _super.prototype.toString.call(this) + \",cls:\" + CompositeClass.toString();\n };\n\n return class_1;\n }(list_1.List), _a._capnp = {\n compositeSize: CompositeClass._capnp.size,\n displayName: \"List<\" + CompositeClass._capnp.displayName + \">\",\n size: list_element_size_1.ListElementSize.COMPOSITE\n }, _a;\n\n var _a;\n}\n\nexports.CompositeList = CompositeList;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar data_1 = require(\"./data\");\n\nvar pointer_list_1 = require(\"./pointer-list\");\n\nexports.DataList = pointer_list_1.PointerList(data_1.Data);","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Float32List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Float32List, _super);\n\n function Float32List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Float32List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getFloat32(c.byteOffset + index * 4);\n };\n\n Float32List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setFloat32(c.byteOffset + index * 4, value);\n };\n\n Float32List.prototype.toString = function () {\n return \"Float32_\" + _super.prototype.toString.call(this);\n };\n\n Float32List._capnp = {\n displayName: 'List<Float32>',\n size: list_element_size_1.ListElementSize.BYTE_4\n };\n return Float32List;\n}(list_1.List);\n\nexports.Float32List = Float32List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Float64List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Float64List, _super);\n\n function Float64List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Float64List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getFloat64(c.byteOffset + index * 8);\n };\n\n Float64List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setFloat64(c.byteOffset + index * 8, value);\n };\n\n Float64List.prototype.toString = function () {\n return \"Float64_\" + _super.prototype.toString.call(this);\n };\n\n Float64List._capnp = {\n displayName: 'List<Float64>',\n size: list_element_size_1.ListElementSize.BYTE_8\n };\n return Float64List;\n}(list_1.List);\n\nexports.Float64List = Float64List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Int8List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Int8List, _super);\n\n function Int8List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Int8List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getInt8(c.byteOffset + index);\n };\n\n Int8List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setInt8(c.byteOffset + index, value);\n };\n\n Int8List.prototype.toString = function () {\n return \"Int8_\" + _super.prototype.toString.call(this);\n };\n\n Int8List._capnp = {\n displayName: 'List<Int8>',\n size: list_element_size_1.ListElementSize.BYTE\n };\n return Int8List;\n}(list_1.List);\n\nexports.Int8List = Int8List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Int16List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Int16List, _super);\n\n function Int16List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Int16List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getInt16(c.byteOffset + index * 2);\n };\n\n Int16List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setInt16(c.byteOffset + index * 2, value);\n };\n\n Int16List.prototype.toString = function () {\n return \"Int16_\" + _super.prototype.toString.call(this);\n };\n\n Int16List._capnp = {\n displayName: 'List<Int16>',\n size: list_element_size_1.ListElementSize.BYTE_2\n };\n return Int16List;\n}(list_1.List);\n\nexports.Int16List = Int16List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Int32List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Int32List, _super);\n\n function Int32List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Int32List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getInt32(c.byteOffset + index * 4);\n };\n\n Int32List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setInt32(c.byteOffset + index * 4, value);\n };\n\n Int32List.prototype.toString = function () {\n return \"Int32_\" + _super.prototype.toString.call(this);\n };\n\n Int32List._capnp = {\n displayName: 'List<Int32>',\n size: list_element_size_1.ListElementSize.BYTE_4\n };\n return Int32List;\n}(list_1.List);\n\nexports.Int32List = Int32List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Int64List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Int64List, _super);\n\n function Int64List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Int64List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getInt64(c.byteOffset + index * 8);\n };\n\n Int64List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setInt64(c.byteOffset + index * 8, value);\n };\n\n Int64List.prototype.toString = function () {\n return \"Int64_\" + _super.prototype.toString.call(this);\n };\n\n Int64List._capnp = {\n displayName: 'List<Int64>',\n size: list_element_size_1.ListElementSize.BYTE_8\n };\n return Int64List;\n}(list_1.List);\n\nexports.Int64List = Int64List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar interface_1 = require(\"./interface\");\n\nvar pointer_list_1 = require(\"./pointer-list\");\n\nexports.InterfaceList = pointer_list_1.PointerList(interface_1.Interface);","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../constants\");\n\nvar util_1 = require(\"../util\");\n\nvar uint64_1 = require(\"./uint64\");\n\nvar trace = debug_1.default('capnp:int64');\ntrace('load');\n/**\n * Represents a signed 64-bit integer stored using a Uint8Array in little-endian format.\n *\n * You may convert this to a primitive number by calling `toNumber()` but be wary of precision loss!\n *\n * The value passed in as the source buffer is expected to be in little-endian format.\n */\n\nvar Int64 =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Int64, _super);\n\n function Int64() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Int64.fromArrayBuffer = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(new Uint8Array(source, offset, 8));\n return new this(new Uint8Array(source.slice(offset, offset + 8)));\n };\n\n Int64.fromDataView = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(new Uint8Array(source.buffer, source.byteOffset + offset, 8));\n return new this(new Uint8Array(source.buffer.slice(source.byteOffset + offset, source.byteLength + offset + 8)));\n };\n\n Int64.fromNumber = function (source) {\n var ret = new this(new Uint8Array(8));\n ret.setValue(source);\n return ret;\n };\n /**\n * Parse a hexadecimal string in **big endian format** as an Int64 value.\n *\n * The value will be negative if the string is either preceded with a `-` sign, or already in the negative 2's\n * complement form.\n *\n * @static\n * @param {string} source The source string.\n * @returns {Int64} The string parsed as a 64-bit signed integer.\n */\n\n\n Int64.fromHexString = function (source) {\n if (source.substr(0, 2) === '0x') source = source.substr(2);\n if (source.length < 1) return Int64.fromNumber(0);\n var neg = source[0] === '-';\n if (neg) source = source.substr(1);\n source = util_1.pad(source, 16);\n if (source.length !== 16) throw new RangeError('Source string must contain at most 16 hexadecimal digits.');\n var bytes = source.toLowerCase().replace(/[^\\da-f]/g, '');\n var buf = new Uint8Array(new ArrayBuffer(8));\n\n for (var i = 0; i < 8; i++) {\n buf[7 - i] = parseInt(bytes.substr(i * 2, 2), 16);\n }\n\n var val = new Int64(buf);\n if (neg) val.negate();\n return val;\n };\n\n Int64.fromUint8Array = function (source, offset, noCopy) {\n if (offset === void 0) {\n offset = 0;\n }\n\n if (noCopy === void 0) {\n noCopy = false;\n }\n\n if (noCopy) return new this(source.subarray(offset, offset + 8));\n return new this(new Uint8Array(source.buffer.slice(source.byteOffset + offset, source.byteOffset + offset + 8)));\n };\n\n Int64.prototype.equals = function (other) {\n return _super.prototype.equals.call(this, other);\n };\n\n Int64.prototype.inspect = function () {\n return \"[Int64 \" + this.toString(10) + \" 0x\" + this.toHexString() + \"]\";\n };\n\n Int64.prototype.negate = function () {\n for (var b = this.buffer, carry = 1, i = 0; i < 8; i++) {\n var v = (b[i] ^ 0xff) + carry;\n b[i] = v & 0xff;\n carry = v >> 8;\n }\n };\n\n Int64.prototype.setValue = function (loWord, hiWord) {\n var negate = false;\n var lo = loWord;\n var hi = hiWord;\n\n if (hi === undefined) {\n hi = lo;\n negate = hi < 0;\n hi = Math.abs(hi);\n lo = hi % constants_1.VAL32;\n hi = hi / constants_1.VAL32;\n if (hi > constants_1.VAL32) throw new RangeError(loWord + \" is outside Int64 range\");\n hi = hi >>> 0;\n }\n\n for (var i = 0; i < 8; i++) {\n this.buffer[i] = lo & 0xff;\n lo = i === 3 ? hi : lo >>> 8;\n }\n\n if (negate) this.negate();\n };\n\n Int64.prototype.toHexString = function () {\n var b = this.buffer;\n var negate = b[7] & 0x80;\n if (negate) this.negate();\n var hex = '';\n\n for (var i = 7; i >= 0; i--) {\n var v = b[i].toString(16);\n if (v.length === 1) v = '0' + v;\n hex += v;\n }\n\n if (negate) {\n this.negate();\n hex = '-' + hex;\n }\n\n return hex;\n };\n /**\n * Convert to a native javascript number.\n *\n * WARNING: do not expect this number to be accurate to integer precision for large (positive or negative) numbers!\n *\n * @param {boolean} allowImprecise If `true`, no check is performed to verify the returned value is accurate;\n * otherwise out-of-range values are clamped to +/-Infinity.\n * @returns {number} A numeric representation of this integer.\n */\n\n\n Int64.prototype.toNumber = function (allowImprecise) {\n var b = this.buffer;\n var negate = b[7] & 0x80;\n var x = 0;\n var carry = 1;\n var i = 0;\n var m = 1;\n\n while (i < 8) {\n var v = b[i];\n\n if (negate) {\n v = (v ^ 0xff) + carry;\n carry = v >> 8;\n v = v & 0xff;\n }\n\n x += v * m;\n m *= 256;\n i++;\n }\n\n if (!allowImprecise && x >= constants_1.MAX_SAFE_INTEGER) {\n trace('Coercing out of range value %d to Infinity.', x);\n return negate ? -Infinity : Infinity;\n }\n\n return negate ? -x : x;\n };\n\n return Int64;\n}(uint64_1.Uint64);\n\nexports.Int64 = Int64;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar text_1 = require(\"./text\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar TextList =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(TextList, _super);\n\n function TextList() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TextList.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n c.byteOffset += index * 8;\n return text_1.Text.fromPointer(c).get(0);\n };\n\n TextList.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.byteOffset += index * 8;\n text_1.Text.fromPointer(c).set(0, value);\n };\n\n TextList.prototype.toString = function () {\n return \"Text_\" + _super.prototype.toString.call(this);\n };\n\n TextList._capnp = {\n displayName: 'List<Text>',\n size: list_element_size_1.ListElementSize.POINTER\n };\n return TextList;\n}(list_1.List);\n\nexports.TextList = TextList;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Uint8List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Uint8List, _super);\n\n function Uint8List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Uint8List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getUint8(c.byteOffset + index);\n };\n\n Uint8List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setUint8(c.byteOffset + index, value);\n };\n\n Uint8List.prototype.toString = function () {\n return \"Uint8_\" + _super.prototype.toString.call(this);\n };\n\n Uint8List._capnp = {\n displayName: 'List<Uint8>',\n size: list_element_size_1.ListElementSize.BYTE\n };\n return Uint8List;\n}(list_1.List);\n\nexports.Uint8List = Uint8List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Uint16List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Uint16List, _super);\n\n function Uint16List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Uint16List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getUint16(c.byteOffset + index * 2);\n };\n\n Uint16List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setUint16(c.byteOffset + index * 2, value);\n };\n\n Uint16List.prototype.toString = function () {\n return \"Uint16_\" + _super.prototype.toString.call(this);\n };\n\n Uint16List._capnp = {\n displayName: 'List<Uint16>',\n size: list_element_size_1.ListElementSize.BYTE_2\n };\n return Uint16List;\n}(list_1.List);\n\nexports.Uint16List = Uint16List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Uint32List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Uint32List, _super);\n\n function Uint32List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Uint32List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getUint32(c.byteOffset + index * 4);\n };\n\n Uint32List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setUint32(c.byteOffset + index * 4, value);\n };\n\n Uint32List.prototype.toString = function () {\n return \"Uint32_\" + _super.prototype.toString.call(this);\n };\n\n Uint32List._capnp = {\n displayName: 'List<Uint32>',\n size: list_element_size_1.ListElementSize.BYTE_4\n };\n return Uint32List;\n}(list_1.List);\n\nexports.Uint32List = Uint32List;","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar tslib_1 = require(\"tslib\");\n\nvar debug_1 = require(\"debug\");\n\nvar list_element_size_1 = require(\"../list-element-size\");\n\nvar list_1 = require(\"./list\");\n\nvar pointer_1 = require(\"./pointer\");\n\nvar trace = debug_1.default('capnp:list:composite');\ntrace('load');\n\nvar Uint64List =\n/** @class */\nfunction (_super) {\n tslib_1.__extends(Uint64List, _super);\n\n function Uint64List() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Uint64List.prototype.get = function (index) {\n var c = pointer_1.getContent(this);\n return c.segment.getUint64(c.byteOffset + index * 8);\n };\n\n Uint64List.prototype.set = function (index, value) {\n var c = pointer_1.getContent(this);\n c.segment.setUint64(c.byteOffset + index * 8, value);\n };\n\n Uint64List.prototype.toString = function () {\n return \"Uint64_\" + _super.prototype.toString.call(this);\n };\n\n Uint64List._capnp = {\n displayName: 'List<Uint64>',\n size: list_element_size_1.ListElementSize.BYTE_8\n };\n return Uint64List;\n}(list_1.List);\n\nexports.Uint64List = Uint64List;","\"use strict\";\n/**\n * Why would anyone **SANE** ever use this!?\n *\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar pointer_list_1 = require(\"./pointer-list\");\n\nvar void_1 = require(\"./void\");\n\nexports.VoidList = pointer_list_1.PointerList(void_1.Void);","\"use strict\";\n/**\n * @author jdiaz5513\n */\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar debug_1 = require(\"debug\");\n\nvar constants_1 = require(\"../constants\");\n\nvar errors_1 = require(\"../errors\");\n\nvar types_1 = require(\"../types\");\n\nvar util_1 = require(\"../util\");\n\nvar pointers_1 = require(\"./pointers\");\n\nvar trace = debug_1.default('capnp:segment');\ntrace('load');\n\nvar Segment =\n/** @class */\nfunction () {\n function Segment(id, message, buffer, byteLength) {\n if (byteLength === void 0) {\n byteLength = 0;\n }\n\n this[Symbol.toStringTag] = 'Segment';\n this.id = id;\n this.message = message;\n this.buffer = buffer;\n this._dv = new DataView(buffer);\n this.byteOffset = 0;\n this.byteLength = byteLength;\n }\n /**\n * Attempt to allocate the requested number of bytes in this segment. If this segment is full this method will return\n * a pointer to freshly allocated space in another segment from the same message.\n *\n * @param {number} byteLength The number of bytes to allocate, will be rounded up to the nearest word.\n * @returns {Pointer} A pointer to the newly allocated space.\n */\n\n\n Segment.prototype.allocate = function (byteLength) {\n trace('allocate(%d)', byteLength);\n var segment = this;\n byteLength = util_1.padToWord(byteLength);\n if (byteLength > constants_1.MAX_SEGMENT_LENGTH - 8) throw new Error(util_1.format(errors_1.SEG_SIZE_OVERFLOW, byteLength));\n if (!segment.hasCapacity(byteLength)) segment = segment.message.allocateSegment(byteLength);\n var byteOffset = segment.byteLength;\n segment.byteLength = segment.byteLength + byteLength;\n trace('Allocated %x bytes in %s (requested segment: %s).', byteLength, this, segment);\n return new pointers_1.Pointer(segment, byteOffset);\n };\n /**\n * Quickly copy a word (8 bytes) from `srcSegment` into this one at the given offset.\n *\n * @param {number} byteOffset The offset to write the word to.\n * @param {Segment} srcSegment The segment to copy the word from.\n * @param {number} srcByteOffset The offset from the start of `srcSegment` to copy from.\n * @returns {void}\n */\n\n\n Segment.prototype.copyWord = function (byteOffset, srcSegment, srcByteOffset) {\n var value = srcSegment._dv.getFloat64(srcByteOffset, constants_1.NATIVE_LITTLE_ENDIAN);\n\n this._dv.setFloat64(byteOffset, value, constants_1.NATIVE_LITTLE_ENDIAN);\n };\n /**\n * Quickly copy words from `srcSegment` into this one.\n *\n * @param {number} byteOffset The offset to start copying into.\n * @param {Segment} srcSegment The segment to copy from.\n * @param {number} srcByteOffset The start offset to copy from.\n * @param {number} wordLength The number of words to copy.\n * @returns {void}\n */\n\n\n Segment.prototype.copyWords = function (byteOffset, srcSegment, srcByteOffset, wordLength) {\n var dst = new Float64Array(this.buffer, byteOffset, wordLength);\n var src = new Float64Array(srcSegment.buffer, srcByteOffset, wordLength);\n dst.set(src);\n };\n /**\n * Quickly fill a number of words in the buffer with zeroes.\n *\n * @param {number} byteOffset The first byte to set to zero.\n * @param {number} wordLength The number of words (not bytes!) to zero out.\n * @returns {void}\n */\n\n\n Segment.prototype.fillZeroWords = function (byteOffset, wordLength) {\n new Float64Array(this.buffer, byteOffset, wordLength).fill(0);\n };\n /**\n * Get the total number of bytes available in this segment (the size of its underlying buffer).\n *\n * @returns {number} The total number of bytes this segment can hold.\n */\n\n\n Segment.prototype.getCapacity = function () {\n return this.buffer.byteLength;\n };\n /**\n * Read a float32 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getFloat32 = function (byteOffset) {\n return this._dv.getFloat32(byteOffset, true);\n };\n /**\n * Read a float64 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getFloat64 = function (byteOffset) {\n return this._dv.getFloat64(byteOffset, true);\n };\n /**\n * Read an int16 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getInt16 = function (byteOffset) {\n return this._dv.getInt16(byteOffset, true);\n };\n /**\n * Read an int32 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getInt32 = function (byteOffset) {\n return this._dv.getInt32(byteOffset, true);\n };\n /**\n * Read an int64 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getInt64 = function (byteOffset) {\n return new types_1.Int64(new Uint8Array(this.buffer.slice(byteOffset, byteOffset + 8)));\n };\n /**\n * Read an int8 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getInt8 = function (byteOffset) {\n return this._dv.getInt8(byteOffset);\n };\n /**\n * Read a uint16 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getUint16 = function (byteOffset) {\n return this._dv.getUint16(byteOffset, true);\n };\n /**\n * Read a uint32 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getUint32 = function (byteOffset) {\n return this._dv.getUint32(byteOffset, true);\n };\n /**\n * Read a uint8 value out of this segment.\n * NOTE: this does not copy the memory region, so updates to the underlying buffer will affect the Uint64 value!\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getUint64 = function (byteOffset) {\n return new types_1.Uint64(new Uint8Array(this.buffer.slice(byteOffset, byteOffset + 8)));\n };\n /**\n * Read a uint8 value out of this segment.\n *\n * @param {number} byteOffset The offset in bytes to the value.\n * @returns {number} The value.\n */\n\n\n Segment.prototype.getUint8 = function (byteOffset) {\n return this._dv.getUint8(byteOffset);\n };\n\n Segment.prototype.hasCapacity = function (byteLength) {\n trace('hasCapacity(%d)', byteLength); // capacity - allocated >= requested\n\n return this.buffer.byteLength - this.byteLength >= byteLength;\n };\n /**\n * Quickly check the word at the given offset to see if it is equal to zero.\n *\n * PERF_V8: Fastest way to do this is by reading the whole word as a `number` (float64) in the _native_ endian format\n * and see if it's zero.\n *\n * Benchmark: http://jsben.ch/#/Pjooc\n *\n * @param {number} byteOffset The offset to the word.\n * @returns {boolean} `true` if the word is zero.\n */\n\n\n Segment.prototype.isWordZero = function (byteOffset) {\n return this._dv.getFloat64(byteOffset, constants_1.NATIVE_LITTLE_ENDIAN) === 0;\n };\n /**\n * Swap out this segment's underlying buffer with a new one. It's assumed that the new buffer has the same content but\n * more free space, otherwise all existing pointers to this segment will be hilariously broken.\n *\n * @param {ArrayBuffer} buffer The new buffer to use.\n * @returns {void}\n */\n\n\n Segment.prototype.replaceBuffer = function (buffer) {\n trace('replaceBuffer(%p)', buffer);\n if (this.buffer === buffer) return;\n if (buffer.byteLength < this.byteLength) throw new Error(errors_1.SEG_REPLACEMENT_BUFFER_TOO_SMALL);\n this._dv = new DataView(buffer);\n this.buffer = buffer;\n };\n /**\n * Write a float32 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setFloat32 = function (byteOffset, val) {\n this._dv.setFloat32(byteOffset, val, true);\n };\n /**\n * Write an float64 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setFloat64 = function (byteOffset, val) {\n this._dv.setFloat64(byteOffset, val, true);\n };\n /**\n * Write an int16 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setInt16 = function (byteOffset, val) {\n this._dv.setInt16(byteOffset, val, true);\n };\n /**\n * Write an int32 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setInt32 = function (byteOffset, val) {\n this._dv.setInt32(byteOffset, val, true);\n };\n /**\n * Write an int8 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setInt8 = function (byteOffset, val) {\n this._dv.setInt8(byteOffset, val);\n };\n /**\n * Write an int64 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {Int64} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setInt64 = function (byteOffset, val) {\n this._dv.setUint8(byteOffset, val.buffer[0]);\n\n this._dv.setUint8(byteOffset + 1, val.buffer[1]);\n\n this._dv.setUint8(byteOffset + 2, val.buffer[2]);\n\n this._dv.setUint8(byteOffset + 3, val.buffer[3]);\n\n this._dv.setUint8(byteOffset + 4, val.buffer[4]);\n\n this._dv.setUint8(byteOffset + 5, val.buffer[5]);\n\n this._dv.setUint8(byteOffset + 6, val.buffer[6]);\n\n this._dv.setUint8(byteOffset + 7, val.buffer[7]);\n };\n /**\n * Write a uint16 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setUint16 = function (byteOffset, val) {\n this._dv.setUint16(byteOffset, val, true);\n };\n /**\n * Write a uint32 value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setUint32 = function (byteOffset, val) {\n this._dv.setUint32(byteOffset, val, true);\n };\n /**\n * Write a uint64 value to the specified offset.\n * TODO: benchmark other ways to perform this write operation.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {Uint64} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setUint64 = function (byteOffset, val) {\n this._dv.setUint8(byteOffset + 0, val.buffer[0]);\n\n this._dv.setUint8(byteOffset + 1, val.buffer[1]);\n\n this._dv.setUint8(byteOffset + 2, val.buffer[2]);\n\n this._dv.setUint8(byteOffset + 3, val.buffer[3]);\n\n this._dv.setUint8(byteOffset + 4, val.buffer[4]);\n\n this._dv.setUint8(byteOffset + 5, val.buffer[5]);\n\n this._dv.setUint8(byteOffset + 6, val.buffer[6]);\n\n this._dv.setUint8(byteOffset + 7, val.buffer[7]);\n };\n /**\n * Write a uint8 (byte) value to the specified offset.\n *\n * @param {number} byteOffset The offset from the beginning of the buffer.\n * @param {number} val The value to store.\n * @returns {void}\n */\n\n\n Segment.prototype.setUint8 = function (byteOffset, val) {\n this._dv.setUint8(byteOffset, val);\n };\n /**\n * Write a zero word (8 bytes) to the specified offset. This is slightly faster than calling `setUint64` or\n * `setFloat64` with a zero value.\n *\n * Benchmark: http://jsben.ch/#/dUdPI\n *\n * @param {number} byteOffset The offset of the word to set to zero.\n * @returns {void}\n */\n\n\n Segment.prototype.setWordZero = function (byteOffset) {\n this._dv.setFloat64(byteOffset, 0, constants_1.NATIVE_LITTLE_ENDIAN);\n };\n\n Segment.prototype.toString = function () {\n return util_1.format('Segment_id:%d,off:%a,len:%a,cap:%a', this.id, this.byteLength, this.byteOffset, this.buffer.byteLength);\n };\n\n return Segment;\n}();\n\nexports.Segment = Segment;","\"use strict\";\n/* tslint:disable */\n\nvar __extends = this && this.__extends || function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\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\nexports.__esModule = true;\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nvar capnp = require(\"capnp-ts\");\n\nvar capnp_ts_1 = require(\"capnp-ts\");\n\nvar car_capnp_1 = require(\"./car.capnp\");\n\nexports._capnpFileId = \"f3b1f17e25a4285b\";\n\nvar Map_Entry =\n/** @class */\nfunction (_super) {\n __extends(Map_Entry, _super);\n\n function Map_Entry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Map_Entry.prototype.adoptKey = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map_Entry.prototype.disownKey = function () {\n return capnp_ts_1.Struct.disown(this.getKey());\n };\n\n Map_Entry.prototype.getKey = function () {\n return capnp_ts_1.Struct.getPointer(0, this);\n };\n\n Map_Entry.prototype.hasKey = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map_Entry.prototype.setKey = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map_Entry.prototype.adoptValue = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Map_Entry.prototype.disownValue = function () {\n return capnp_ts_1.Struct.disown(this.getValue());\n };\n\n Map_Entry.prototype.getValue = function () {\n return capnp_ts_1.Struct.getPointer(1, this);\n };\n\n Map_Entry.prototype.hasValue = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Map_Entry.prototype.setValue = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Map_Entry.prototype.toString = function () {\n return \"Map_Entry_\" + _super.prototype.toString.call(this);\n };\n\n Map_Entry._capnp = {\n displayName: \"Entry\",\n id: \"a5dfdd084a6eea0e\",\n size: new capnp_ts_1.ObjectSize(0, 2)\n };\n return Map_Entry;\n}(capnp_ts_1.Struct);\n\nexports.Map_Entry = Map_Entry;\n\nvar Map =\n/** @class */\nfunction (_super) {\n __extends(Map, _super);\n\n function Map() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Map.prototype.adoptEntries = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map.prototype.disownEntries = function () {\n return capnp_ts_1.Struct.disown(this.getEntries());\n };\n\n Map.prototype.getEntries = function () {\n return capnp_ts_1.Struct.getList(0, Map._Entries, this);\n };\n\n Map.prototype.hasEntries = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map.prototype.initEntries = function (length) {\n return capnp_ts_1.Struct.initList(0, Map._Entries, length, this);\n };\n\n Map.prototype.setEntries = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Map.prototype.toString = function () {\n return \"Map_\" + _super.prototype.toString.call(this);\n };\n\n Map.Entry = Map_Entry;\n Map._capnp = {\n displayName: \"Map\",\n id: \"f8b13ce2183eb696\",\n size: new capnp_ts_1.ObjectSize(0, 1)\n };\n return Map;\n}(capnp_ts_1.Struct);\n\nexports.Map = Map;\nvar InitData_DeviceType;\n\n(function (InitData_DeviceType) {\n InitData_DeviceType[InitData_DeviceType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n InitData_DeviceType[InitData_DeviceType[\"NEO\"] = 1] = \"NEO\";\n InitData_DeviceType[InitData_DeviceType[\"CHFFR_ANDROID\"] = 2] = \"CHFFR_ANDROID\";\n InitData_DeviceType[InitData_DeviceType[\"CHFFR_IOS\"] = 3] = \"CHFFR_IOS\";\n})(InitData_DeviceType = exports.InitData_DeviceType || (exports.InitData_DeviceType = {}));\n\nvar InitData_AndroidBuildInfo =\n/** @class */\nfunction (_super) {\n __extends(InitData_AndroidBuildInfo, _super);\n\n function InitData_AndroidBuildInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData_AndroidBuildInfo.prototype.getBoard = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setBoard = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getBootloader = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setBootloader = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getBrand = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setBrand = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getDevice = function () {\n return capnp_ts_1.Struct.getText(3, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setDevice = function (value) {\n capnp_ts_1.Struct.setText(3, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getDisplay = function () {\n return capnp_ts_1.Struct.getText(4, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setDisplay = function (value) {\n capnp_ts_1.Struct.setText(4, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getFingerprint = function () {\n return capnp_ts_1.Struct.getText(5, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setFingerprint = function (value) {\n capnp_ts_1.Struct.setText(5, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getHardware = function () {\n return capnp_ts_1.Struct.getText(6, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setHardware = function (value) {\n capnp_ts_1.Struct.setText(6, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getHost = function () {\n return capnp_ts_1.Struct.getText(7, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setHost = function (value) {\n capnp_ts_1.Struct.setText(7, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getId = function () {\n return capnp_ts_1.Struct.getText(8, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setId = function (value) {\n capnp_ts_1.Struct.setText(8, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getManufacturer = function () {\n return capnp_ts_1.Struct.getText(9, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setManufacturer = function (value) {\n capnp_ts_1.Struct.setText(9, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getModel = function () {\n return capnp_ts_1.Struct.getText(10, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setModel = function (value) {\n capnp_ts_1.Struct.setText(10, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getProduct = function () {\n return capnp_ts_1.Struct.getText(11, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setProduct = function (value) {\n capnp_ts_1.Struct.setText(11, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getRadioVersion = function () {\n return capnp_ts_1.Struct.getText(12, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setRadioVersion = function (value) {\n capnp_ts_1.Struct.setText(12, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getSerial = function () {\n return capnp_ts_1.Struct.getText(13, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setSerial = function (value) {\n capnp_ts_1.Struct.setText(13, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.adoptSupportedAbis = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData_AndroidBuildInfo.prototype.disownSupportedAbis = function () {\n return capnp_ts_1.Struct.disown(this.getSupportedAbis());\n };\n\n InitData_AndroidBuildInfo.prototype.getSupportedAbis = function () {\n return capnp_ts_1.Struct.getList(14, capnp.TextList, this);\n };\n\n InitData_AndroidBuildInfo.prototype.hasSupportedAbis = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData_AndroidBuildInfo.prototype.initSupportedAbis = function (length) {\n return capnp_ts_1.Struct.initList(14, capnp.TextList, length, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setSupportedAbis = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData_AndroidBuildInfo.prototype.getTags = function () {\n return capnp_ts_1.Struct.getText(15, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setTags = function (value) {\n capnp_ts_1.Struct.setText(15, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getTime = function () {\n return capnp_ts_1.Struct.getInt64(0, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setTime = function (value) {\n capnp_ts_1.Struct.setInt64(0, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getType = function () {\n return capnp_ts_1.Struct.getText(16, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setType = function (value) {\n capnp_ts_1.Struct.setText(16, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getUser = function () {\n return capnp_ts_1.Struct.getText(17, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setUser = function (value) {\n capnp_ts_1.Struct.setText(17, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getVersionCodename = function () {\n return capnp_ts_1.Struct.getText(18, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setVersionCodename = function (value) {\n capnp_ts_1.Struct.setText(18, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getVersionRelease = function () {\n return capnp_ts_1.Struct.getText(19, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setVersionRelease = function (value) {\n capnp_ts_1.Struct.setText(19, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getVersionSdk = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setVersionSdk = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.getVersionSecurityPatch = function () {\n return capnp_ts_1.Struct.getText(20, this);\n };\n\n InitData_AndroidBuildInfo.prototype.setVersionSecurityPatch = function (value) {\n capnp_ts_1.Struct.setText(20, value, this);\n };\n\n InitData_AndroidBuildInfo.prototype.toString = function () {\n return \"InitData_AndroidBuildInfo_\" + _super.prototype.toString.call(this);\n };\n\n InitData_AndroidBuildInfo._capnp = {\n displayName: \"AndroidBuildInfo\",\n id: \"fe2919d5c21f426c\",\n size: new capnp_ts_1.ObjectSize(16, 21)\n };\n return InitData_AndroidBuildInfo;\n}(capnp_ts_1.Struct);\n\nexports.InitData_AndroidBuildInfo = InitData_AndroidBuildInfo;\n\nvar InitData_AndroidSensor =\n/** @class */\nfunction (_super) {\n __extends(InitData_AndroidSensor, _super);\n\n function InitData_AndroidSensor() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData_AndroidSensor.prototype.getId = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n InitData_AndroidSensor.prototype.setId = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n InitData_AndroidSensor.prototype.getName = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n InitData_AndroidSensor.prototype.setName = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n InitData_AndroidSensor.prototype.getVendor = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n InitData_AndroidSensor.prototype.setVendor = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n InitData_AndroidSensor.prototype.getVersion = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n InitData_AndroidSensor.prototype.setVersion = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n InitData_AndroidSensor.prototype.getHandle = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n InitData_AndroidSensor.prototype.setHandle = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n InitData_AndroidSensor.prototype.getType = function () {\n return capnp_ts_1.Struct.getInt32(12, this);\n };\n\n InitData_AndroidSensor.prototype.setType = function (value) {\n capnp_ts_1.Struct.setInt32(12, value, this);\n };\n\n InitData_AndroidSensor.prototype.getMaxRange = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n InitData_AndroidSensor.prototype.setMaxRange = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n InitData_AndroidSensor.prototype.getResolution = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n InitData_AndroidSensor.prototype.setResolution = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n InitData_AndroidSensor.prototype.getPower = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n InitData_AndroidSensor.prototype.setPower = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n InitData_AndroidSensor.prototype.getMinDelay = function () {\n return capnp_ts_1.Struct.getInt32(28, this);\n };\n\n InitData_AndroidSensor.prototype.setMinDelay = function (value) {\n capnp_ts_1.Struct.setInt32(28, value, this);\n };\n\n InitData_AndroidSensor.prototype.getFifoReservedEventCount = function () {\n return capnp_ts_1.Struct.getUint32(32, this);\n };\n\n InitData_AndroidSensor.prototype.setFifoReservedEventCount = function (value) {\n capnp_ts_1.Struct.setUint32(32, value, this);\n };\n\n InitData_AndroidSensor.prototype.getFifoMaxEventCount = function () {\n return capnp_ts_1.Struct.getUint32(36, this);\n };\n\n InitData_AndroidSensor.prototype.setFifoMaxEventCount = function (value) {\n capnp_ts_1.Struct.setUint32(36, value, this);\n };\n\n InitData_AndroidSensor.prototype.getStringType = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n InitData_AndroidSensor.prototype.setStringType = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n InitData_AndroidSensor.prototype.getMaxDelay = function () {\n return capnp_ts_1.Struct.getInt32(40, this);\n };\n\n InitData_AndroidSensor.prototype.setMaxDelay = function (value) {\n capnp_ts_1.Struct.setInt32(40, value, this);\n };\n\n InitData_AndroidSensor.prototype.toString = function () {\n return \"InitData_AndroidSensor_\" + _super.prototype.toString.call(this);\n };\n\n InitData_AndroidSensor._capnp = {\n displayName: \"AndroidSensor\",\n id: \"9b513b93a887dbcd\",\n size: new capnp_ts_1.ObjectSize(48, 3)\n };\n return InitData_AndroidSensor;\n}(capnp_ts_1.Struct);\n\nexports.InitData_AndroidSensor = InitData_AndroidSensor;\n\nvar InitData_ChffrAndroidExtra =\n/** @class */\nfunction (_super) {\n __extends(InitData_ChffrAndroidExtra, _super);\n\n function InitData_ChffrAndroidExtra() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData_ChffrAndroidExtra.prototype.adoptAllCameraCharacteristics = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData_ChffrAndroidExtra.prototype.disownAllCameraCharacteristics = function () {\n return capnp_ts_1.Struct.disown(this.getAllCameraCharacteristics());\n };\n\n InitData_ChffrAndroidExtra.prototype.getAllCameraCharacteristics = function () {\n return capnp_ts_1.Struct.getStruct(0, Map, this);\n };\n\n InitData_ChffrAndroidExtra.prototype.hasAllCameraCharacteristics = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData_ChffrAndroidExtra.prototype.initAllCameraCharacteristics = function () {\n return capnp_ts_1.Struct.initStructAt(0, Map, this);\n };\n\n InitData_ChffrAndroidExtra.prototype.setAllCameraCharacteristics = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData_ChffrAndroidExtra.prototype.toString = function () {\n return \"InitData_ChffrAndroidExtra_\" + _super.prototype.toString.call(this);\n };\n\n InitData_ChffrAndroidExtra._capnp = {\n displayName: \"ChffrAndroidExtra\",\n id: \"9cfb5d53a4f615a5\",\n size: new capnp_ts_1.ObjectSize(0, 1)\n };\n return InitData_ChffrAndroidExtra;\n}(capnp_ts_1.Struct);\n\nexports.InitData_ChffrAndroidExtra = InitData_ChffrAndroidExtra;\n\nvar InitData_IosBuildInfo =\n/** @class */\nfunction (_super) {\n __extends(InitData_IosBuildInfo, _super);\n\n function InitData_IosBuildInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData_IosBuildInfo.prototype.getAppVersion = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n InitData_IosBuildInfo.prototype.setAppVersion = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n InitData_IosBuildInfo.prototype.getAppBuild = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n InitData_IosBuildInfo.prototype.setAppBuild = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n InitData_IosBuildInfo.prototype.getOsVersion = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n InitData_IosBuildInfo.prototype.setOsVersion = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n InitData_IosBuildInfo.prototype.getDeviceModel = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n InitData_IosBuildInfo.prototype.setDeviceModel = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n InitData_IosBuildInfo.prototype.toString = function () {\n return \"InitData_IosBuildInfo_\" + _super.prototype.toString.call(this);\n };\n\n InitData_IosBuildInfo._capnp = {\n displayName: \"IosBuildInfo\",\n id: \"d97e3b28239f5580\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return InitData_IosBuildInfo;\n}(capnp_ts_1.Struct);\n\nexports.InitData_IosBuildInfo = InitData_IosBuildInfo;\n\nvar InitData_PandaInfo =\n/** @class */\nfunction (_super) {\n __extends(InitData_PandaInfo, _super);\n\n function InitData_PandaInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData_PandaInfo.prototype.getHasPanda = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n InitData_PandaInfo.prototype.setHasPanda = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n InitData_PandaInfo.prototype.getDongleId = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n InitData_PandaInfo.prototype.setDongleId = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n InitData_PandaInfo.prototype.getStVersion = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n InitData_PandaInfo.prototype.setStVersion = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n InitData_PandaInfo.prototype.getEspVersion = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n InitData_PandaInfo.prototype.setEspVersion = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n InitData_PandaInfo.prototype.toString = function () {\n return \"InitData_PandaInfo_\" + _super.prototype.toString.call(this);\n };\n\n InitData_PandaInfo._capnp = {\n displayName: \"PandaInfo\",\n id: \"e673e8725cdff0ad\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return InitData_PandaInfo;\n}(capnp_ts_1.Struct);\n\nexports.InitData_PandaInfo = InitData_PandaInfo;\n\nvar InitData =\n/** @class */\nfunction (_super) {\n __extends(InitData, _super);\n\n function InitData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n InitData.prototype.adoptKernelArgs = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData.prototype.disownKernelArgs = function () {\n return capnp_ts_1.Struct.disown(this.getKernelArgs());\n };\n\n InitData.prototype.getKernelArgs = function () {\n return capnp_ts_1.Struct.getList(0, capnp.TextList, this);\n };\n\n InitData.prototype.hasKernelArgs = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData.prototype.initKernelArgs = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.TextList, length, this);\n };\n\n InitData.prototype.setKernelArgs = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n InitData.prototype.getKernelVersion = function () {\n return capnp_ts_1.Struct.getText(12, this);\n };\n\n InitData.prototype.setKernelVersion = function (value) {\n capnp_ts_1.Struct.setText(12, value, this);\n };\n\n InitData.prototype.getGctx = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n InitData.prototype.setGctx = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n InitData.prototype.getDongleId = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n InitData.prototype.setDongleId = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n InitData.prototype.getDeviceType = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n InitData.prototype.setDeviceType = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n InitData.prototype.getVersion = function () {\n return capnp_ts_1.Struct.getText(3, this);\n };\n\n InitData.prototype.setVersion = function (value) {\n capnp_ts_1.Struct.setText(3, value, this);\n };\n\n InitData.prototype.getGitCommit = function () {\n return capnp_ts_1.Struct.getText(8, this);\n };\n\n InitData.prototype.setGitCommit = function (value) {\n capnp_ts_1.Struct.setText(8, value, this);\n };\n\n InitData.prototype.getGitBranch = function () {\n return capnp_ts_1.Struct.getText(9, this);\n };\n\n InitData.prototype.setGitBranch = function (value) {\n capnp_ts_1.Struct.setText(9, value, this);\n };\n\n InitData.prototype.getGitRemote = function () {\n return capnp_ts_1.Struct.getText(10, this);\n };\n\n InitData.prototype.setGitRemote = function (value) {\n capnp_ts_1.Struct.setText(10, value, this);\n };\n\n InitData.prototype.adoptAndroidBuildInfo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n InitData.prototype.disownAndroidBuildInfo = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidBuildInfo());\n };\n\n InitData.prototype.getAndroidBuildInfo = function () {\n return capnp_ts_1.Struct.getStruct(4, InitData_AndroidBuildInfo, this);\n };\n\n InitData.prototype.hasAndroidBuildInfo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n InitData.prototype.initAndroidBuildInfo = function () {\n return capnp_ts_1.Struct.initStructAt(4, InitData_AndroidBuildInfo, this);\n };\n\n InitData.prototype.setAndroidBuildInfo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n InitData.prototype.adoptAndroidSensors = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n InitData.prototype.disownAndroidSensors = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidSensors());\n };\n\n InitData.prototype.getAndroidSensors = function () {\n return capnp_ts_1.Struct.getList(5, InitData._AndroidSensors, this);\n };\n\n InitData.prototype.hasAndroidSensors = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n InitData.prototype.initAndroidSensors = function (length) {\n return capnp_ts_1.Struct.initList(5, InitData._AndroidSensors, length, this);\n };\n\n InitData.prototype.setAndroidSensors = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n InitData.prototype.adoptAndroidProperties = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(13, this));\n };\n\n InitData.prototype.disownAndroidProperties = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidProperties());\n };\n\n InitData.prototype.getAndroidProperties = function () {\n return capnp_ts_1.Struct.getStruct(13, Map, this);\n };\n\n InitData.prototype.hasAndroidProperties = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(13, this));\n };\n\n InitData.prototype.initAndroidProperties = function () {\n return capnp_ts_1.Struct.initStructAt(13, Map, this);\n };\n\n InitData.prototype.setAndroidProperties = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(13, this));\n };\n\n InitData.prototype.adoptChffrAndroidExtra = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n InitData.prototype.disownChffrAndroidExtra = function () {\n return capnp_ts_1.Struct.disown(this.getChffrAndroidExtra());\n };\n\n InitData.prototype.getChffrAndroidExtra = function () {\n return capnp_ts_1.Struct.getStruct(6, InitData_ChffrAndroidExtra, this);\n };\n\n InitData.prototype.hasChffrAndroidExtra = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(6, this));\n };\n\n InitData.prototype.initChffrAndroidExtra = function () {\n return capnp_ts_1.Struct.initStructAt(6, InitData_ChffrAndroidExtra, this);\n };\n\n InitData.prototype.setChffrAndroidExtra = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n InitData.prototype.adoptIosBuildInfo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(11, this));\n };\n\n InitData.prototype.disownIosBuildInfo = function () {\n return capnp_ts_1.Struct.disown(this.getIosBuildInfo());\n };\n\n InitData.prototype.getIosBuildInfo = function () {\n return capnp_ts_1.Struct.getStruct(11, InitData_IosBuildInfo, this);\n };\n\n InitData.prototype.hasIosBuildInfo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(11, this));\n };\n\n InitData.prototype.initIosBuildInfo = function () {\n return capnp_ts_1.Struct.initStructAt(11, InitData_IosBuildInfo, this);\n };\n\n InitData.prototype.setIosBuildInfo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(11, this));\n };\n\n InitData.prototype.adoptPandaInfo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n InitData.prototype.disownPandaInfo = function () {\n return capnp_ts_1.Struct.disown(this.getPandaInfo());\n };\n\n InitData.prototype.getPandaInfo = function () {\n return capnp_ts_1.Struct.getStruct(7, InitData_PandaInfo, this);\n };\n\n InitData.prototype.hasPandaInfo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(7, this));\n };\n\n InitData.prototype.initPandaInfo = function () {\n return capnp_ts_1.Struct.initStructAt(7, InitData_PandaInfo, this);\n };\n\n InitData.prototype.setPandaInfo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n InitData.prototype.getDirty = function () {\n return capnp_ts_1.Struct.getBit(16, this);\n };\n\n InitData.prototype.setDirty = function (value) {\n capnp_ts_1.Struct.setBit(16, value, this);\n };\n\n InitData.prototype.getPassive = function () {\n return capnp_ts_1.Struct.getBit(17, this);\n };\n\n InitData.prototype.setPassive = function (value) {\n capnp_ts_1.Struct.setBit(17, value, this);\n };\n\n InitData.prototype.adoptParams = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData.prototype.disownParams = function () {\n return capnp_ts_1.Struct.disown(this.getParams());\n };\n\n InitData.prototype.getParams = function () {\n return capnp_ts_1.Struct.getStruct(14, Map, this);\n };\n\n InitData.prototype.hasParams = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData.prototype.initParams = function () {\n return capnp_ts_1.Struct.initStructAt(14, Map, this);\n };\n\n InitData.prototype.setParams = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(14, this));\n };\n\n InitData.prototype.toString = function () {\n return \"InitData_\" + _super.prototype.toString.call(this);\n };\n\n InitData.DeviceType = InitData_DeviceType;\n InitData.AndroidBuildInfo = InitData_AndroidBuildInfo;\n InitData.AndroidSensor = InitData_AndroidSensor;\n InitData.ChffrAndroidExtra = InitData_ChffrAndroidExtra;\n InitData.IosBuildInfo = InitData_IosBuildInfo;\n InitData.PandaInfo = InitData_PandaInfo;\n InitData._capnp = {\n displayName: \"InitData\",\n id: \"e71008caeb3fb65c\",\n size: new capnp_ts_1.ObjectSize(8, 15)\n };\n return InitData;\n}(capnp_ts_1.Struct);\n\nexports.InitData = InitData;\nvar FrameData_FrameType;\n\n(function (FrameData_FrameType) {\n FrameData_FrameType[FrameData_FrameType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n FrameData_FrameType[FrameData_FrameType[\"NEO\"] = 1] = \"NEO\";\n FrameData_FrameType[FrameData_FrameType[\"CHFFR_ANDROID\"] = 2] = \"CHFFR_ANDROID\";\n})(FrameData_FrameType = exports.FrameData_FrameType || (exports.FrameData_FrameType = {}));\n\nvar FrameData_AndroidCaptureResult =\n/** @class */\nfunction (_super) {\n __extends(FrameData_AndroidCaptureResult, _super);\n\n function FrameData_AndroidCaptureResult() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n FrameData_AndroidCaptureResult.prototype.getSensitivity = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setSensitivity = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.getFrameDuration = function () {\n return capnp_ts_1.Struct.getInt64(8, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setFrameDuration = function (value) {\n capnp_ts_1.Struct.setInt64(8, value, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.getExposureTime = function () {\n return capnp_ts_1.Struct.getInt64(16, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setExposureTime = function (value) {\n capnp_ts_1.Struct.setInt64(16, value, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.getRollingShutterSkew = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setRollingShutterSkew = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.adoptColorCorrectionTransform = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.disownColorCorrectionTransform = function () {\n return capnp_ts_1.Struct.disown(this.getColorCorrectionTransform());\n };\n\n FrameData_AndroidCaptureResult.prototype.getColorCorrectionTransform = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Int32List, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.hasColorCorrectionTransform = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.initColorCorrectionTransform = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Int32List, length, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setColorCorrectionTransform = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.adoptColorCorrectionGains = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.disownColorCorrectionGains = function () {\n return capnp_ts_1.Struct.disown(this.getColorCorrectionGains());\n };\n\n FrameData_AndroidCaptureResult.prototype.getColorCorrectionGains = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.hasColorCorrectionGains = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.initColorCorrectionGains = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setColorCorrectionGains = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData_AndroidCaptureResult.prototype.getDisplayRotation = function () {\n return capnp_ts_1.Struct.getInt8(4, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.setDisplayRotation = function (value) {\n capnp_ts_1.Struct.setInt8(4, value, this);\n };\n\n FrameData_AndroidCaptureResult.prototype.toString = function () {\n return \"FrameData_AndroidCaptureResult_\" + _super.prototype.toString.call(this);\n };\n\n FrameData_AndroidCaptureResult._capnp = {\n displayName: \"AndroidCaptureResult\",\n id: \"bcc3efbac41d2048\",\n size: new capnp_ts_1.ObjectSize(32, 2)\n };\n return FrameData_AndroidCaptureResult;\n}(capnp_ts_1.Struct);\n\nexports.FrameData_AndroidCaptureResult = FrameData_AndroidCaptureResult;\n\nvar FrameData =\n/** @class */\nfunction (_super) {\n __extends(FrameData, _super);\n\n function FrameData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n FrameData.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n FrameData.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n FrameData.prototype.getEncodeId = function () {\n return capnp_ts_1.Struct.getUint32(4, this);\n };\n\n FrameData.prototype.setEncodeId = function (value) {\n capnp_ts_1.Struct.setUint32(4, value, this);\n };\n\n FrameData.prototype.getTimestampEof = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n FrameData.prototype.setTimestampEof = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n FrameData.prototype.getFrameLength = function () {\n return capnp_ts_1.Struct.getInt32(16, this);\n };\n\n FrameData.prototype.setFrameLength = function (value) {\n capnp_ts_1.Struct.setInt32(16, value, this);\n };\n\n FrameData.prototype.getIntegLines = function () {\n return capnp_ts_1.Struct.getInt32(20, this);\n };\n\n FrameData.prototype.setIntegLines = function (value) {\n capnp_ts_1.Struct.setInt32(20, value, this);\n };\n\n FrameData.prototype.getGlobalGain = function () {\n return capnp_ts_1.Struct.getInt32(24, this);\n };\n\n FrameData.prototype.setGlobalGain = function (value) {\n capnp_ts_1.Struct.setInt32(24, value, this);\n };\n\n FrameData.prototype.getLensPos = function () {\n return capnp_ts_1.Struct.getInt32(40, this);\n };\n\n FrameData.prototype.setLensPos = function (value) {\n capnp_ts_1.Struct.setInt32(40, value, this);\n };\n\n FrameData.prototype.getLensSag = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n FrameData.prototype.setLensSag = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n FrameData.prototype.getLensErr = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n FrameData.prototype.setLensErr = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n FrameData.prototype.getLensTruePos = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n FrameData.prototype.setLensTruePos = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n FrameData.prototype.adoptImage = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData.prototype.disownImage = function () {\n return capnp_ts_1.Struct.disown(this.getImage());\n };\n\n FrameData.prototype.getImage = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n FrameData.prototype.hasImage = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData.prototype.initImage = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n FrameData.prototype.setImage = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n FrameData.prototype.getFrameType = function () {\n return capnp_ts_1.Struct.getUint16(28, this);\n };\n\n FrameData.prototype.setFrameType = function (value) {\n capnp_ts_1.Struct.setUint16(28, value, this);\n };\n\n FrameData.prototype.getTimestampSof = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n FrameData.prototype.setTimestampSof = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n FrameData.prototype.adoptTransform = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n FrameData.prototype.disownTransform = function () {\n return capnp_ts_1.Struct.disown(this.getTransform());\n };\n\n FrameData.prototype.getTransform = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n FrameData.prototype.hasTransform = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n FrameData.prototype.initTransform = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n FrameData.prototype.setTransform = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n FrameData.prototype.adoptAndroidCaptureResult = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData.prototype.disownAndroidCaptureResult = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidCaptureResult());\n };\n\n FrameData.prototype.getAndroidCaptureResult = function () {\n return capnp_ts_1.Struct.getStruct(1, FrameData_AndroidCaptureResult, this);\n };\n\n FrameData.prototype.hasAndroidCaptureResult = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData.prototype.initAndroidCaptureResult = function () {\n return capnp_ts_1.Struct.initStructAt(1, FrameData_AndroidCaptureResult, this);\n };\n\n FrameData.prototype.setAndroidCaptureResult = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n FrameData.prototype.toString = function () {\n return \"FrameData_\" + _super.prototype.toString.call(this);\n };\n\n FrameData.FrameType = FrameData_FrameType;\n FrameData.AndroidCaptureResult = FrameData_AndroidCaptureResult;\n FrameData._capnp = {\n displayName: \"FrameData\",\n id: \"ea0245f695ae0a33\",\n size: new capnp_ts_1.ObjectSize(56, 3)\n };\n return FrameData;\n}(capnp_ts_1.Struct);\n\nexports.FrameData = FrameData;\n\nvar Thumbnail =\n/** @class */\nfunction (_super) {\n __extends(Thumbnail, _super);\n\n function Thumbnail() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Thumbnail.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n Thumbnail.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n Thumbnail.prototype.getTimestampEof = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n Thumbnail.prototype.setTimestampEof = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n Thumbnail.prototype.adoptThumbnail = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Thumbnail.prototype.disownThumbnail = function () {\n return capnp_ts_1.Struct.disown(this.getThumbnail());\n };\n\n Thumbnail.prototype.getThumbnail = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n Thumbnail.prototype.hasThumbnail = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Thumbnail.prototype.initThumbnail = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n Thumbnail.prototype.setThumbnail = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Thumbnail.prototype.toString = function () {\n return \"Thumbnail_\" + _super.prototype.toString.call(this);\n };\n\n Thumbnail._capnp = {\n displayName: \"Thumbnail\",\n id: \"b65fce64120af7d3\",\n size: new capnp_ts_1.ObjectSize(16, 1)\n };\n return Thumbnail;\n}(capnp_ts_1.Struct);\n\nexports.Thumbnail = Thumbnail;\n\nvar GPSNMEAData =\n/** @class */\nfunction (_super) {\n __extends(GPSNMEAData, _super);\n\n function GPSNMEAData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GPSNMEAData.prototype.getTimestamp = function () {\n return capnp_ts_1.Struct.getInt64(0, this);\n };\n\n GPSNMEAData.prototype.setTimestamp = function (value) {\n capnp_ts_1.Struct.setInt64(0, value, this);\n };\n\n GPSNMEAData.prototype.getLocalWallTime = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n GPSNMEAData.prototype.setLocalWallTime = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n GPSNMEAData.prototype.getNmea = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n GPSNMEAData.prototype.setNmea = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n GPSNMEAData.prototype.toString = function () {\n return \"GPSNMEAData_\" + _super.prototype.toString.call(this);\n };\n\n GPSNMEAData._capnp = {\n displayName: \"GPSNMEAData\",\n id: \"9d291d7813ba4a88\",\n size: new capnp_ts_1.ObjectSize(16, 1)\n };\n return GPSNMEAData;\n}(capnp_ts_1.Struct);\n\nexports.GPSNMEAData = GPSNMEAData;\n\nvar SensorEventData_SensorVec =\n/** @class */\nfunction (_super) {\n __extends(SensorEventData_SensorVec, _super);\n\n function SensorEventData_SensorVec() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SensorEventData_SensorVec.prototype.adoptV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData_SensorVec.prototype.disownV = function () {\n return capnp_ts_1.Struct.disown(this.getV());\n };\n\n SensorEventData_SensorVec.prototype.getV = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n SensorEventData_SensorVec.prototype.hasV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData_SensorVec.prototype.initV = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n SensorEventData_SensorVec.prototype.setV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData_SensorVec.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getInt8(0, this);\n };\n\n SensorEventData_SensorVec.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setInt8(0, value, this);\n };\n\n SensorEventData_SensorVec.prototype.toString = function () {\n return \"SensorEventData_SensorVec_\" + _super.prototype.toString.call(this);\n };\n\n SensorEventData_SensorVec._capnp = {\n displayName: \"SensorVec\",\n id: \"a43429bd2bfc24fc\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return SensorEventData_SensorVec;\n}(capnp_ts_1.Struct);\n\nexports.SensorEventData_SensorVec = SensorEventData_SensorVec;\nvar SensorEventData_SensorSource;\n\n(function (SensorEventData_SensorSource) {\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"ANDROID\"] = 0] = \"ANDROID\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"I_OS\"] = 1] = \"I_OS\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"FIBER\"] = 2] = \"FIBER\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"VELODYNE\"] = 3] = \"VELODYNE\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"BNO055\"] = 4] = \"BNO055\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"LSM6DS3\"] = 5] = \"LSM6DS3\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"BMP280\"] = 6] = \"BMP280\";\n SensorEventData_SensorSource[SensorEventData_SensorSource[\"MMC3416X\"] = 7] = \"MMC3416X\";\n})(SensorEventData_SensorSource = exports.SensorEventData_SensorSource || (exports.SensorEventData_SensorSource = {}));\n\nvar SensorEventData_Which;\n\n(function (SensorEventData_Which) {\n SensorEventData_Which[SensorEventData_Which[\"ACCELERATION\"] = 0] = \"ACCELERATION\";\n SensorEventData_Which[SensorEventData_Which[\"MAGNETIC\"] = 1] = \"MAGNETIC\";\n SensorEventData_Which[SensorEventData_Which[\"ORIENTATION\"] = 2] = \"ORIENTATION\";\n SensorEventData_Which[SensorEventData_Which[\"GYRO\"] = 3] = \"GYRO\";\n SensorEventData_Which[SensorEventData_Which[\"PRESSURE\"] = 4] = \"PRESSURE\";\n SensorEventData_Which[SensorEventData_Which[\"MAGNETIC_UNCALIBRATED\"] = 5] = \"MAGNETIC_UNCALIBRATED\";\n SensorEventData_Which[SensorEventData_Which[\"GYRO_UNCALIBRATED\"] = 6] = \"GYRO_UNCALIBRATED\";\n SensorEventData_Which[SensorEventData_Which[\"PROXIMITY\"] = 7] = \"PROXIMITY\";\n SensorEventData_Which[SensorEventData_Which[\"LIGHT\"] = 8] = \"LIGHT\";\n})(SensorEventData_Which = exports.SensorEventData_Which || (exports.SensorEventData_Which = {}));\n\nvar SensorEventData =\n/** @class */\nfunction (_super) {\n __extends(SensorEventData, _super);\n\n function SensorEventData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n SensorEventData.prototype.getVersion = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n SensorEventData.prototype.setVersion = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n SensorEventData.prototype.getSensor = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n SensorEventData.prototype.setSensor = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n SensorEventData.prototype.getType = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n SensorEventData.prototype.setType = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n SensorEventData.prototype.getTimestamp = function () {\n return capnp_ts_1.Struct.getInt64(16, this);\n };\n\n SensorEventData.prototype.setTimestamp = function (value) {\n capnp_ts_1.Struct.setInt64(16, value, this);\n };\n\n SensorEventData.prototype.getUncalibratedDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(192, this);\n };\n\n SensorEventData.prototype.setUncalibratedDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(192, value, this);\n };\n\n SensorEventData.prototype.adoptAcceleration = function (value) {\n capnp_ts_1.Struct.setUint16(12, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownAcceleration = function () {\n return capnp_ts_1.Struct.disown(this.getAcceleration());\n };\n\n SensorEventData.prototype.getAcceleration = function () {\n capnp_ts_1.Struct.testWhich(\"acceleration\", capnp_ts_1.Struct.getUint16(12, this), 0, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasAcceleration = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initAcceleration = function () {\n capnp_ts_1.Struct.setUint16(12, 0, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isAcceleration = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 0;\n };\n\n SensorEventData.prototype.setAcceleration = function (value) {\n capnp_ts_1.Struct.setUint16(12, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptMagnetic = function (value) {\n capnp_ts_1.Struct.setUint16(12, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownMagnetic = function () {\n return capnp_ts_1.Struct.disown(this.getMagnetic());\n };\n\n SensorEventData.prototype.getMagnetic = function () {\n capnp_ts_1.Struct.testWhich(\"magnetic\", capnp_ts_1.Struct.getUint16(12, this), 1, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasMagnetic = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initMagnetic = function () {\n capnp_ts_1.Struct.setUint16(12, 1, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isMagnetic = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 1;\n };\n\n SensorEventData.prototype.setMagnetic = function (value) {\n capnp_ts_1.Struct.setUint16(12, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptOrientation = function (value) {\n capnp_ts_1.Struct.setUint16(12, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownOrientation = function () {\n return capnp_ts_1.Struct.disown(this.getOrientation());\n };\n\n SensorEventData.prototype.getOrientation = function () {\n capnp_ts_1.Struct.testWhich(\"orientation\", capnp_ts_1.Struct.getUint16(12, this), 2, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasOrientation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initOrientation = function () {\n capnp_ts_1.Struct.setUint16(12, 2, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isOrientation = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 2;\n };\n\n SensorEventData.prototype.setOrientation = function (value) {\n capnp_ts_1.Struct.setUint16(12, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptGyro = function (value) {\n capnp_ts_1.Struct.setUint16(12, 3, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownGyro = function () {\n return capnp_ts_1.Struct.disown(this.getGyro());\n };\n\n SensorEventData.prototype.getGyro = function () {\n capnp_ts_1.Struct.testWhich(\"gyro\", capnp_ts_1.Struct.getUint16(12, this), 3, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasGyro = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initGyro = function () {\n capnp_ts_1.Struct.setUint16(12, 3, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isGyro = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 3;\n };\n\n SensorEventData.prototype.setGyro = function (value) {\n capnp_ts_1.Struct.setUint16(12, 3, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptPressure = function (value) {\n capnp_ts_1.Struct.setUint16(12, 4, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownPressure = function () {\n return capnp_ts_1.Struct.disown(this.getPressure());\n };\n\n SensorEventData.prototype.getPressure = function () {\n capnp_ts_1.Struct.testWhich(\"pressure\", capnp_ts_1.Struct.getUint16(12, this), 4, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasPressure = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initPressure = function () {\n capnp_ts_1.Struct.setUint16(12, 4, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isPressure = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 4;\n };\n\n SensorEventData.prototype.setPressure = function (value) {\n capnp_ts_1.Struct.setUint16(12, 4, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptMagneticUncalibrated = function (value) {\n capnp_ts_1.Struct.setUint16(12, 5, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownMagneticUncalibrated = function () {\n return capnp_ts_1.Struct.disown(this.getMagneticUncalibrated());\n };\n\n SensorEventData.prototype.getMagneticUncalibrated = function () {\n capnp_ts_1.Struct.testWhich(\"magneticUncalibrated\", capnp_ts_1.Struct.getUint16(12, this), 5, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasMagneticUncalibrated = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initMagneticUncalibrated = function () {\n capnp_ts_1.Struct.setUint16(12, 5, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isMagneticUncalibrated = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 5;\n };\n\n SensorEventData.prototype.setMagneticUncalibrated = function (value) {\n capnp_ts_1.Struct.setUint16(12, 5, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.adoptGyroUncalibrated = function (value) {\n capnp_ts_1.Struct.setUint16(12, 6, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.disownGyroUncalibrated = function () {\n return capnp_ts_1.Struct.disown(this.getGyroUncalibrated());\n };\n\n SensorEventData.prototype.getGyroUncalibrated = function () {\n capnp_ts_1.Struct.testWhich(\"gyroUncalibrated\", capnp_ts_1.Struct.getUint16(12, this), 6, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.hasGyroUncalibrated = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.initGyroUncalibrated = function () {\n capnp_ts_1.Struct.setUint16(12, 6, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData_SensorVec, this);\n };\n\n SensorEventData.prototype.isGyroUncalibrated = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 6;\n };\n\n SensorEventData.prototype.setGyroUncalibrated = function (value) {\n capnp_ts_1.Struct.setUint16(12, 6, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n SensorEventData.prototype.getProximity = function () {\n capnp_ts_1.Struct.testWhich(\"proximity\", capnp_ts_1.Struct.getUint16(12, this), 7, this);\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n SensorEventData.prototype.isProximity = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 7;\n };\n\n SensorEventData.prototype.setProximity = function (value) {\n capnp_ts_1.Struct.setUint16(12, 7, this);\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n SensorEventData.prototype.getLight = function () {\n capnp_ts_1.Struct.testWhich(\"light\", capnp_ts_1.Struct.getUint16(12, this), 8, this);\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n SensorEventData.prototype.isLight = function () {\n return capnp_ts_1.Struct.getUint16(12, this) === 8;\n };\n\n SensorEventData.prototype.setLight = function (value) {\n capnp_ts_1.Struct.setUint16(12, 8, this);\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n SensorEventData.prototype.getSource = function () {\n return capnp_ts_1.Struct.getUint16(14, this);\n };\n\n SensorEventData.prototype.setSource = function (value) {\n capnp_ts_1.Struct.setUint16(14, value, this);\n };\n\n SensorEventData.prototype.toString = function () {\n return \"SensorEventData_\" + _super.prototype.toString.call(this);\n };\n\n SensorEventData.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(12, this);\n };\n\n SensorEventData.ACCELERATION = SensorEventData_Which.ACCELERATION;\n SensorEventData.MAGNETIC = SensorEventData_Which.MAGNETIC;\n SensorEventData.ORIENTATION = SensorEventData_Which.ORIENTATION;\n SensorEventData.GYRO = SensorEventData_Which.GYRO;\n SensorEventData.PRESSURE = SensorEventData_Which.PRESSURE;\n SensorEventData.MAGNETIC_UNCALIBRATED = SensorEventData_Which.MAGNETIC_UNCALIBRATED;\n SensorEventData.GYRO_UNCALIBRATED = SensorEventData_Which.GYRO_UNCALIBRATED;\n SensorEventData.PROXIMITY = SensorEventData_Which.PROXIMITY;\n SensorEventData.LIGHT = SensorEventData_Which.LIGHT;\n SensorEventData.SensorVec = SensorEventData_SensorVec;\n SensorEventData.SensorSource = SensorEventData_SensorSource;\n SensorEventData._capnp = {\n displayName: \"SensorEventData\",\n id: \"a2b29a69d44529a1\",\n size: new capnp_ts_1.ObjectSize(32, 1)\n };\n return SensorEventData;\n}(capnp_ts_1.Struct);\n\nexports.SensorEventData = SensorEventData;\nvar GpsLocationData_SensorSource;\n\n(function (GpsLocationData_SensorSource) {\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"ANDROID\"] = 0] = \"ANDROID\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"I_OS\"] = 1] = \"I_OS\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"CAR\"] = 2] = \"CAR\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"VELODYNE\"] = 3] = \"VELODYNE\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"FUSION\"] = 4] = \"FUSION\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"EXTERNAL\"] = 5] = \"EXTERNAL\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"UBLOX\"] = 6] = \"UBLOX\";\n GpsLocationData_SensorSource[GpsLocationData_SensorSource[\"TRIMBLE\"] = 7] = \"TRIMBLE\";\n})(GpsLocationData_SensorSource = exports.GpsLocationData_SensorSource || (exports.GpsLocationData_SensorSource = {}));\n\nvar GpsLocationData =\n/** @class */\nfunction (_super) {\n __extends(GpsLocationData, _super);\n\n function GpsLocationData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GpsLocationData.prototype.getFlags = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n GpsLocationData.prototype.setFlags = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n GpsLocationData.prototype.getLatitude = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n GpsLocationData.prototype.setLatitude = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n GpsLocationData.prototype.getLongitude = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n GpsLocationData.prototype.setLongitude = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n GpsLocationData.prototype.getAltitude = function () {\n return capnp_ts_1.Struct.getFloat64(24, this);\n };\n\n GpsLocationData.prototype.setAltitude = function (value) {\n capnp_ts_1.Struct.setFloat64(24, value, this);\n };\n\n GpsLocationData.prototype.getSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n GpsLocationData.prototype.setSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n GpsLocationData.prototype.getBearing = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n GpsLocationData.prototype.setBearing = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n GpsLocationData.prototype.getAccuracy = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n GpsLocationData.prototype.setAccuracy = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n GpsLocationData.prototype.getTimestamp = function () {\n return capnp_ts_1.Struct.getInt64(40, this);\n };\n\n GpsLocationData.prototype.setTimestamp = function (value) {\n capnp_ts_1.Struct.setInt64(40, value, this);\n };\n\n GpsLocationData.prototype.getSource = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n GpsLocationData.prototype.setSource = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n GpsLocationData.prototype.adoptVNED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GpsLocationData.prototype.disownVNED = function () {\n return capnp_ts_1.Struct.disown(this.getVNED());\n };\n\n GpsLocationData.prototype.getVNED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n GpsLocationData.prototype.hasVNED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GpsLocationData.prototype.initVNED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n GpsLocationData.prototype.setVNED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GpsLocationData.prototype.getVerticalAccuracy = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n GpsLocationData.prototype.setVerticalAccuracy = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n GpsLocationData.prototype.getBearingAccuracy = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n GpsLocationData.prototype.setBearingAccuracy = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n GpsLocationData.prototype.getSpeedAccuracy = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n GpsLocationData.prototype.setSpeedAccuracy = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n GpsLocationData.prototype.toString = function () {\n return \"GpsLocationData_\" + _super.prototype.toString.call(this);\n };\n\n GpsLocationData.SensorSource = GpsLocationData_SensorSource;\n GpsLocationData._capnp = {\n displayName: \"GpsLocationData\",\n id: \"e946524859add50e\",\n size: new capnp_ts_1.ObjectSize(64, 1)\n };\n return GpsLocationData;\n}(capnp_ts_1.Struct);\n\nexports.GpsLocationData = GpsLocationData;\n\nvar CanData =\n/** @class */\nfunction (_super) {\n __extends(CanData, _super);\n\n function CanData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CanData.prototype.getAddress = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n CanData.prototype.setAddress = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n CanData.prototype.getBusTime = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n CanData.prototype.setBusTime = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n CanData.prototype.adoptDat = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CanData.prototype.disownDat = function () {\n return capnp_ts_1.Struct.disown(this.getDat());\n };\n\n CanData.prototype.getDat = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n CanData.prototype.hasDat = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CanData.prototype.initDat = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n CanData.prototype.setDat = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CanData.prototype.getSrc = function () {\n return capnp_ts_1.Struct.getUint8(6, this);\n };\n\n CanData.prototype.setSrc = function (value) {\n capnp_ts_1.Struct.setUint8(6, value, this);\n };\n\n CanData.prototype.toString = function () {\n return \"CanData_\" + _super.prototype.toString.call(this);\n };\n\n CanData._capnp = {\n displayName: \"CanData\",\n id: \"8785009a964c7c59\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return CanData;\n}(capnp_ts_1.Struct);\n\nexports.CanData = CanData;\nvar ThermalData_ThermalStatus;\n\n(function (ThermalData_ThermalStatus) {\n ThermalData_ThermalStatus[ThermalData_ThermalStatus[\"GREEN\"] = 0] = \"GREEN\";\n ThermalData_ThermalStatus[ThermalData_ThermalStatus[\"YELLOW\"] = 1] = \"YELLOW\";\n ThermalData_ThermalStatus[ThermalData_ThermalStatus[\"RED\"] = 2] = \"RED\";\n ThermalData_ThermalStatus[ThermalData_ThermalStatus[\"DANGER\"] = 3] = \"DANGER\";\n})(ThermalData_ThermalStatus = exports.ThermalData_ThermalStatus || (exports.ThermalData_ThermalStatus = {}));\n\nvar ThermalData =\n/** @class */\nfunction (_super) {\n __extends(ThermalData, _super);\n\n function ThermalData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ThermalData.prototype.getCpu0 = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n ThermalData.prototype.setCpu0 = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n ThermalData.prototype.getCpu1 = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n ThermalData.prototype.setCpu1 = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n ThermalData.prototype.getCpu2 = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n ThermalData.prototype.setCpu2 = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n ThermalData.prototype.getCpu3 = function () {\n return capnp_ts_1.Struct.getUint16(6, this);\n };\n\n ThermalData.prototype.setCpu3 = function (value) {\n capnp_ts_1.Struct.setUint16(6, value, this);\n };\n\n ThermalData.prototype.getMem = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n ThermalData.prototype.setMem = function (value) {\n capnp_ts_1.Struct.setUint16(8, value, this);\n };\n\n ThermalData.prototype.getGpu = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n ThermalData.prototype.setGpu = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n ThermalData.prototype.getBat = function () {\n return capnp_ts_1.Struct.getUint32(12, this);\n };\n\n ThermalData.prototype.setBat = function (value) {\n capnp_ts_1.Struct.setUint32(12, value, this);\n };\n\n ThermalData.prototype.getFreeSpace = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ThermalData.prototype.setFreeSpace = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ThermalData.prototype.getBatteryPercent = function () {\n return capnp_ts_1.Struct.getInt16(20, this);\n };\n\n ThermalData.prototype.setBatteryPercent = function (value) {\n capnp_ts_1.Struct.setInt16(20, value, this);\n };\n\n ThermalData.prototype.getBatteryStatus = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n ThermalData.prototype.setBatteryStatus = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n ThermalData.prototype.getBatteryCurrent = function () {\n return capnp_ts_1.Struct.getInt32(28, this);\n };\n\n ThermalData.prototype.setBatteryCurrent = function (value) {\n capnp_ts_1.Struct.setInt32(28, value, this);\n };\n\n ThermalData.prototype.getBatteryVoltage = function () {\n return capnp_ts_1.Struct.getInt32(40, this);\n };\n\n ThermalData.prototype.setBatteryVoltage = function (value) {\n capnp_ts_1.Struct.setInt32(40, value, this);\n };\n\n ThermalData.prototype.getUsbOnline = function () {\n return capnp_ts_1.Struct.getBit(193, this);\n };\n\n ThermalData.prototype.setUsbOnline = function (value) {\n capnp_ts_1.Struct.setBit(193, value, this);\n };\n\n ThermalData.prototype.getFanSpeed = function () {\n return capnp_ts_1.Struct.getUint16(22, this);\n };\n\n ThermalData.prototype.setFanSpeed = function (value) {\n capnp_ts_1.Struct.setUint16(22, value, this);\n };\n\n ThermalData.prototype.getStarted = function () {\n return capnp_ts_1.Struct.getBit(192, this);\n };\n\n ThermalData.prototype.setStarted = function (value) {\n capnp_ts_1.Struct.setBit(192, value, this);\n };\n\n ThermalData.prototype.getStartedTs = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n ThermalData.prototype.setStartedTs = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n ThermalData.prototype.getThermalStatus = function () {\n return capnp_ts_1.Struct.getUint16(26, this);\n };\n\n ThermalData.prototype.setThermalStatus = function (value) {\n capnp_ts_1.Struct.setUint16(26, value, this);\n };\n\n ThermalData.prototype.getChargingError = function () {\n return capnp_ts_1.Struct.getBit(194, this);\n };\n\n ThermalData.prototype.setChargingError = function (value) {\n capnp_ts_1.Struct.setBit(194, value, this);\n };\n\n ThermalData.prototype.getChargingDisabled = function () {\n return capnp_ts_1.Struct.getBit(195, this);\n };\n\n ThermalData.prototype.setChargingDisabled = function (value) {\n capnp_ts_1.Struct.setBit(195, value, this);\n };\n\n ThermalData.prototype.toString = function () {\n return \"ThermalData_\" + _super.prototype.toString.call(this);\n };\n\n ThermalData.ThermalStatus = ThermalData_ThermalStatus;\n ThermalData._capnp = {\n displayName: \"ThermalData\",\n id: \"8d8231a40b7fe6e0\",\n size: new capnp_ts_1.ObjectSize(48, 1)\n };\n return ThermalData;\n}(capnp_ts_1.Struct);\n\nexports.ThermalData = ThermalData;\nvar HealthData_HwType;\n\n(function (HealthData_HwType) {\n HealthData_HwType[HealthData_HwType[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n HealthData_HwType[HealthData_HwType[\"WHITE_PANDA\"] = 1] = \"WHITE_PANDA\";\n HealthData_HwType[HealthData_HwType[\"GREY_PANDA\"] = 2] = \"GREY_PANDA\";\n HealthData_HwType[HealthData_HwType[\"BLACK_PANDA\"] = 3] = \"BLACK_PANDA\";\n HealthData_HwType[HealthData_HwType[\"PEDAL\"] = 4] = \"PEDAL\";\n})(HealthData_HwType = exports.HealthData_HwType || (exports.HealthData_HwType = {}));\n\nvar HealthData =\n/** @class */\nfunction (_super) {\n __extends(HealthData, _super);\n\n function HealthData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n HealthData.prototype.getVoltage = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n HealthData.prototype.setVoltage = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n HealthData.prototype.getCurrent = function () {\n return capnp_ts_1.Struct.getUint32(4, this);\n };\n\n HealthData.prototype.setCurrent = function (value) {\n capnp_ts_1.Struct.setUint32(4, value, this);\n };\n\n HealthData.prototype.getStarted = function () {\n return capnp_ts_1.Struct.getBit(64, this);\n };\n\n HealthData.prototype.setStarted = function (value) {\n capnp_ts_1.Struct.setBit(64, value, this);\n };\n\n HealthData.prototype.getControlsAllowed = function () {\n return capnp_ts_1.Struct.getBit(65, this);\n };\n\n HealthData.prototype.setControlsAllowed = function (value) {\n capnp_ts_1.Struct.setBit(65, value, this);\n };\n\n HealthData.prototype.getGasInterceptorDetected = function () {\n return capnp_ts_1.Struct.getBit(66, this);\n };\n\n HealthData.prototype.setGasInterceptorDetected = function (value) {\n capnp_ts_1.Struct.setBit(66, value, this);\n };\n\n HealthData.prototype.getStartedSignalDetectedDeprecated = function () {\n return capnp_ts_1.Struct.getBit(67, this);\n };\n\n HealthData.prototype.setStartedSignalDetectedDeprecated = function (value) {\n capnp_ts_1.Struct.setBit(67, value, this);\n };\n\n HealthData.prototype.getHasGps = function () {\n return capnp_ts_1.Struct.getBit(68, this);\n };\n\n HealthData.prototype.setHasGps = function (value) {\n capnp_ts_1.Struct.setBit(68, value, this);\n };\n\n HealthData.prototype.getCanSendErrs = function () {\n return capnp_ts_1.Struct.getUint32(12, this);\n };\n\n HealthData.prototype.setCanSendErrs = function (value) {\n capnp_ts_1.Struct.setUint32(12, value, this);\n };\n\n HealthData.prototype.getCanFwdErrs = function () {\n return capnp_ts_1.Struct.getUint32(16, this);\n };\n\n HealthData.prototype.setCanFwdErrs = function (value) {\n capnp_ts_1.Struct.setUint32(16, value, this);\n };\n\n HealthData.prototype.getGmlanSendErrs = function () {\n return capnp_ts_1.Struct.getUint32(20, this);\n };\n\n HealthData.prototype.setGmlanSendErrs = function (value) {\n capnp_ts_1.Struct.setUint32(20, value, this);\n };\n\n HealthData.prototype.getHwType = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n HealthData.prototype.setHwType = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n HealthData.prototype.toString = function () {\n return \"HealthData_\" + _super.prototype.toString.call(this);\n };\n\n HealthData.HwType = HealthData_HwType;\n HealthData._capnp = {\n displayName: \"HealthData\",\n id: \"cfa2b0c2c82af1e4\",\n size: new capnp_ts_1.ObjectSize(24, 0)\n };\n return HealthData;\n}(capnp_ts_1.Struct);\n\nexports.HealthData = HealthData;\n\nvar LiveUI =\n/** @class */\nfunction (_super) {\n __extends(LiveUI, _super);\n\n function LiveUI() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveUI.prototype.getRearViewCam = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n LiveUI.prototype.setRearViewCam = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n LiveUI.prototype.getAlertText1 = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n LiveUI.prototype.setAlertText1 = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n LiveUI.prototype.getAlertText2 = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n LiveUI.prototype.setAlertText2 = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n LiveUI.prototype.getAwarenessStatus = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveUI.prototype.setAwarenessStatus = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveUI.prototype.toString = function () {\n return \"LiveUI_\" + _super.prototype.toString.call(this);\n };\n\n LiveUI._capnp = {\n displayName: \"LiveUI\",\n id: \"c08240f996aefced\",\n size: new capnp_ts_1.ObjectSize(8, 2)\n };\n return LiveUI;\n}(capnp_ts_1.Struct);\n\nexports.LiveUI = LiveUI;\n\nvar RadarState_LeadData =\n/** @class */\nfunction (_super) {\n __extends(RadarState_LeadData, _super);\n\n function RadarState_LeadData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RadarState_LeadData.prototype.getDRel = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n RadarState_LeadData.prototype.setDRel = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n RadarState_LeadData.prototype.getYRel = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n RadarState_LeadData.prototype.setYRel = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n RadarState_LeadData.prototype.getVRel = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n RadarState_LeadData.prototype.setVRel = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n RadarState_LeadData.prototype.getARel = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n RadarState_LeadData.prototype.setARel = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n RadarState_LeadData.prototype.getVLead = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n RadarState_LeadData.prototype.setVLead = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n RadarState_LeadData.prototype.getALeadDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n RadarState_LeadData.prototype.setALeadDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n RadarState_LeadData.prototype.getDPath = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n RadarState_LeadData.prototype.setDPath = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n RadarState_LeadData.prototype.getVLat = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n RadarState_LeadData.prototype.setVLat = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n RadarState_LeadData.prototype.getVLeadK = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n RadarState_LeadData.prototype.setVLeadK = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n RadarState_LeadData.prototype.getALeadK = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n RadarState_LeadData.prototype.setALeadK = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n RadarState_LeadData.prototype.getFcw = function () {\n return capnp_ts_1.Struct.getBit(320, this);\n };\n\n RadarState_LeadData.prototype.setFcw = function (value) {\n capnp_ts_1.Struct.setBit(320, value, this);\n };\n\n RadarState_LeadData.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getBit(321, this);\n };\n\n RadarState_LeadData.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setBit(321, value, this);\n };\n\n RadarState_LeadData.prototype.getALeadTau = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n RadarState_LeadData.prototype.setALeadTau = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n RadarState_LeadData.prototype.getModelProb = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n RadarState_LeadData.prototype.setModelProb = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n RadarState_LeadData.prototype.getRadar = function () {\n return capnp_ts_1.Struct.getBit(322, this);\n };\n\n RadarState_LeadData.prototype.setRadar = function (value) {\n capnp_ts_1.Struct.setBit(322, value, this);\n };\n\n RadarState_LeadData.prototype.toString = function () {\n return \"RadarState_LeadData_\" + _super.prototype.toString.call(this);\n };\n\n RadarState_LeadData._capnp = {\n displayName: \"LeadData\",\n id: \"b96f3ad9170cf085\",\n size: new capnp_ts_1.ObjectSize(56, 0)\n };\n return RadarState_LeadData;\n}(capnp_ts_1.Struct);\n\nexports.RadarState_LeadData = RadarState_LeadData;\n\nvar RadarState =\n/** @class */\nfunction (_super) {\n __extends(RadarState, _super);\n\n function RadarState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RadarState.prototype.adoptCanMonoTimes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n RadarState.prototype.disownCanMonoTimes = function () {\n return capnp_ts_1.Struct.disown(this.getCanMonoTimes());\n };\n\n RadarState.prototype.getCanMonoTimes = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Uint64List, this);\n };\n\n RadarState.prototype.hasCanMonoTimes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n RadarState.prototype.initCanMonoTimes = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Uint64List, length, this);\n };\n\n RadarState.prototype.setCanMonoTimes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n RadarState.prototype.getMdMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n RadarState.prototype.setMdMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n RadarState.prototype.getFtMonoTimeDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n RadarState.prototype.setFtMonoTimeDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n RadarState.prototype.getControlsStateMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n RadarState.prototype.setControlsStateMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n RadarState.prototype.adoptRadarErrors = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n RadarState.prototype.disownRadarErrors = function () {\n return capnp_ts_1.Struct.disown(this.getRadarErrors());\n };\n\n RadarState.prototype.getRadarErrors = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Uint16List, this);\n };\n\n RadarState.prototype.hasRadarErrors = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n RadarState.prototype.initRadarErrors = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Uint16List, length, this);\n };\n\n RadarState.prototype.setRadarErrors = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n RadarState.prototype.adoptWarpMatrixDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarState.prototype.disownWarpMatrixDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getWarpMatrixDEPRECATED());\n };\n\n RadarState.prototype.getWarpMatrixDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n RadarState.prototype.hasWarpMatrixDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarState.prototype.initWarpMatrixDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n RadarState.prototype.setWarpMatrixDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarState.prototype.getAngleOffsetDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n RadarState.prototype.setAngleOffsetDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n RadarState.prototype.getCalStatusDEPRECATED = function () {\n return capnp_ts_1.Struct.getInt8(4, this);\n };\n\n RadarState.prototype.setCalStatusDEPRECATED = function (value) {\n capnp_ts_1.Struct.setInt8(4, value, this);\n };\n\n RadarState.prototype.getCalCycleDEPRECATED = function () {\n return capnp_ts_1.Struct.getInt32(12, this);\n };\n\n RadarState.prototype.setCalCycleDEPRECATED = function (value) {\n capnp_ts_1.Struct.setInt32(12, value, this);\n };\n\n RadarState.prototype.getCalPercDEPRECATED = function () {\n return capnp_ts_1.Struct.getInt8(5, this);\n };\n\n RadarState.prototype.setCalPercDEPRECATED = function (value) {\n capnp_ts_1.Struct.setInt8(5, value, this);\n };\n\n RadarState.prototype.adoptLeadOne = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarState.prototype.disownLeadOne = function () {\n return capnp_ts_1.Struct.disown(this.getLeadOne());\n };\n\n RadarState.prototype.getLeadOne = function () {\n return capnp_ts_1.Struct.getStruct(1, RadarState_LeadData, this);\n };\n\n RadarState.prototype.hasLeadOne = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarState.prototype.initLeadOne = function () {\n return capnp_ts_1.Struct.initStructAt(1, RadarState_LeadData, this);\n };\n\n RadarState.prototype.setLeadOne = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarState.prototype.adoptLeadTwo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarState.prototype.disownLeadTwo = function () {\n return capnp_ts_1.Struct.disown(this.getLeadTwo());\n };\n\n RadarState.prototype.getLeadTwo = function () {\n return capnp_ts_1.Struct.getStruct(2, RadarState_LeadData, this);\n };\n\n RadarState.prototype.hasLeadTwo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarState.prototype.initLeadTwo = function () {\n return capnp_ts_1.Struct.initStructAt(2, RadarState_LeadData, this);\n };\n\n RadarState.prototype.setLeadTwo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarState.prototype.getCumLagMs = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n RadarState.prototype.setCumLagMs = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n RadarState.prototype.toString = function () {\n return \"RadarState_\" + _super.prototype.toString.call(this);\n };\n\n RadarState.LeadData = RadarState_LeadData;\n RadarState._capnp = {\n displayName: \"RadarState\",\n id: \"9a185389d6fdd05f\",\n size: new capnp_ts_1.ObjectSize(40, 5)\n };\n return RadarState;\n}(capnp_ts_1.Struct);\n\nexports.RadarState = RadarState;\n\nvar LiveCalibrationData =\n/** @class */\nfunction (_super) {\n __extends(LiveCalibrationData, _super);\n\n function LiveCalibrationData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveCalibrationData.prototype.adoptWarpMatrix = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveCalibrationData.prototype.disownWarpMatrix = function () {\n return capnp_ts_1.Struct.disown(this.getWarpMatrix());\n };\n\n LiveCalibrationData.prototype.getWarpMatrix = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveCalibrationData.prototype.hasWarpMatrix = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveCalibrationData.prototype.initWarpMatrix = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveCalibrationData.prototype.setWarpMatrix = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveCalibrationData.prototype.adoptWarpMatrix2 = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveCalibrationData.prototype.disownWarpMatrix2 = function () {\n return capnp_ts_1.Struct.disown(this.getWarpMatrix2());\n };\n\n LiveCalibrationData.prototype.getWarpMatrix2 = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n LiveCalibrationData.prototype.hasWarpMatrix2 = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveCalibrationData.prototype.initWarpMatrix2 = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n LiveCalibrationData.prototype.setWarpMatrix2 = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveCalibrationData.prototype.adoptWarpMatrixBig = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveCalibrationData.prototype.disownWarpMatrixBig = function () {\n return capnp_ts_1.Struct.disown(this.getWarpMatrixBig());\n };\n\n LiveCalibrationData.prototype.getWarpMatrixBig = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n LiveCalibrationData.prototype.hasWarpMatrixBig = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveCalibrationData.prototype.initWarpMatrixBig = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n LiveCalibrationData.prototype.setWarpMatrixBig = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveCalibrationData.prototype.getCalStatus = function () {\n return capnp_ts_1.Struct.getInt8(0, this);\n };\n\n LiveCalibrationData.prototype.setCalStatus = function (value) {\n capnp_ts_1.Struct.setInt8(0, value, this);\n };\n\n LiveCalibrationData.prototype.getCalCycle = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n LiveCalibrationData.prototype.setCalCycle = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n LiveCalibrationData.prototype.getCalPerc = function () {\n return capnp_ts_1.Struct.getInt8(1, this);\n };\n\n LiveCalibrationData.prototype.setCalPerc = function (value) {\n capnp_ts_1.Struct.setInt8(1, value, this);\n };\n\n LiveCalibrationData.prototype.adoptExtrinsicMatrix = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveCalibrationData.prototype.disownExtrinsicMatrix = function () {\n return capnp_ts_1.Struct.disown(this.getExtrinsicMatrix());\n };\n\n LiveCalibrationData.prototype.getExtrinsicMatrix = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveCalibrationData.prototype.hasExtrinsicMatrix = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveCalibrationData.prototype.initExtrinsicMatrix = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveCalibrationData.prototype.setExtrinsicMatrix = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveCalibrationData.prototype.adoptRpyCalib = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveCalibrationData.prototype.disownRpyCalib = function () {\n return capnp_ts_1.Struct.disown(this.getRpyCalib());\n };\n\n LiveCalibrationData.prototype.getRpyCalib = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n LiveCalibrationData.prototype.hasRpyCalib = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveCalibrationData.prototype.initRpyCalib = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n LiveCalibrationData.prototype.setRpyCalib = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveCalibrationData.prototype.toString = function () {\n return \"LiveCalibrationData_\" + _super.prototype.toString.call(this);\n };\n\n LiveCalibrationData._capnp = {\n displayName: \"LiveCalibrationData\",\n id: \"96df70754d8390bc\",\n size: new capnp_ts_1.ObjectSize(8, 5)\n };\n return LiveCalibrationData;\n}(capnp_ts_1.Struct);\n\nexports.LiveCalibrationData = LiveCalibrationData;\n\nvar LiveTracks =\n/** @class */\nfunction (_super) {\n __extends(LiveTracks, _super);\n\n function LiveTracks() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveTracks.prototype.getTrackId = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n LiveTracks.prototype.setTrackId = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n LiveTracks.prototype.getDRel = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveTracks.prototype.setDRel = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveTracks.prototype.getYRel = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n LiveTracks.prototype.setYRel = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n LiveTracks.prototype.getVRel = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n LiveTracks.prototype.setVRel = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n LiveTracks.prototype.getARel = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n LiveTracks.prototype.setARel = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n LiveTracks.prototype.getTimeStamp = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n LiveTracks.prototype.setTimeStamp = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n LiveTracks.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n LiveTracks.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n LiveTracks.prototype.getCurrentTime = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n LiveTracks.prototype.setCurrentTime = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n LiveTracks.prototype.getStationary = function () {\n return capnp_ts_1.Struct.getBit(256, this);\n };\n\n LiveTracks.prototype.setStationary = function (value) {\n capnp_ts_1.Struct.setBit(256, value, this);\n };\n\n LiveTracks.prototype.getOncoming = function () {\n return capnp_ts_1.Struct.getBit(257, this);\n };\n\n LiveTracks.prototype.setOncoming = function (value) {\n capnp_ts_1.Struct.setBit(257, value, this);\n };\n\n LiveTracks.prototype.toString = function () {\n return \"LiveTracks_\" + _super.prototype.toString.call(this);\n };\n\n LiveTracks._capnp = {\n displayName: \"LiveTracks\",\n id: \"8faa644732dec251\",\n size: new capnp_ts_1.ObjectSize(40, 0)\n };\n return LiveTracks;\n}(capnp_ts_1.Struct);\n\nexports.LiveTracks = LiveTracks;\nvar ControlsState_OpenpilotState;\n\n(function (ControlsState_OpenpilotState) {\n ControlsState_OpenpilotState[ControlsState_OpenpilotState[\"DISABLED\"] = 0] = \"DISABLED\";\n ControlsState_OpenpilotState[ControlsState_OpenpilotState[\"PRE_ENABLED\"] = 1] = \"PRE_ENABLED\";\n ControlsState_OpenpilotState[ControlsState_OpenpilotState[\"ENABLED\"] = 2] = \"ENABLED\";\n ControlsState_OpenpilotState[ControlsState_OpenpilotState[\"SOFT_DISABLING\"] = 3] = \"SOFT_DISABLING\";\n})(ControlsState_OpenpilotState = exports.ControlsState_OpenpilotState || (exports.ControlsState_OpenpilotState = {}));\n\nvar ControlsState_LongControlState;\n\n(function (ControlsState_LongControlState) {\n ControlsState_LongControlState[ControlsState_LongControlState[\"OFF\"] = 0] = \"OFF\";\n ControlsState_LongControlState[ControlsState_LongControlState[\"PID\"] = 1] = \"PID\";\n ControlsState_LongControlState[ControlsState_LongControlState[\"STOPPING\"] = 2] = \"STOPPING\";\n ControlsState_LongControlState[ControlsState_LongControlState[\"STARTING\"] = 3] = \"STARTING\";\n})(ControlsState_LongControlState = exports.ControlsState_LongControlState || (exports.ControlsState_LongControlState = {}));\n\nvar ControlsState_AlertStatus;\n\n(function (ControlsState_AlertStatus) {\n ControlsState_AlertStatus[ControlsState_AlertStatus[\"NORMAL\"] = 0] = \"NORMAL\";\n ControlsState_AlertStatus[ControlsState_AlertStatus[\"USER_PROMPT\"] = 1] = \"USER_PROMPT\";\n ControlsState_AlertStatus[ControlsState_AlertStatus[\"CRITICAL\"] = 2] = \"CRITICAL\";\n})(ControlsState_AlertStatus = exports.ControlsState_AlertStatus || (exports.ControlsState_AlertStatus = {}));\n\nvar ControlsState_AlertSize;\n\n(function (ControlsState_AlertSize) {\n ControlsState_AlertSize[ControlsState_AlertSize[\"NONE\"] = 0] = \"NONE\";\n ControlsState_AlertSize[ControlsState_AlertSize[\"SMALL\"] = 1] = \"SMALL\";\n ControlsState_AlertSize[ControlsState_AlertSize[\"MID\"] = 2] = \"MID\";\n ControlsState_AlertSize[ControlsState_AlertSize[\"FULL\"] = 3] = \"FULL\";\n})(ControlsState_AlertSize = exports.ControlsState_AlertSize || (exports.ControlsState_AlertSize = {}));\n\nvar ControlsState_LateralINDIState =\n/** @class */\nfunction (_super) {\n __extends(ControlsState_LateralINDIState, _super);\n\n function ControlsState_LateralINDIState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ControlsState_LateralINDIState.prototype.getActive = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n ControlsState_LateralINDIState.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getSteerAngle = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ControlsState_LateralINDIState.prototype.setSteerAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getSteerRate = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ControlsState_LateralINDIState.prototype.setSteerRate = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getSteerAccel = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ControlsState_LateralINDIState.prototype.setSteerAccel = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getRateSetPoint = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ControlsState_LateralINDIState.prototype.setRateSetPoint = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getAccelSetPoint = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ControlsState_LateralINDIState.prototype.setAccelSetPoint = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getAccelError = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ControlsState_LateralINDIState.prototype.setAccelError = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getDelayedOutput = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n ControlsState_LateralINDIState.prototype.setDelayedOutput = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getDelta = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n ControlsState_LateralINDIState.prototype.setDelta = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.getOutput = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n ControlsState_LateralINDIState.prototype.setOutput = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n ControlsState_LateralINDIState.prototype.toString = function () {\n return \"ControlsState_LateralINDIState_\" + _super.prototype.toString.call(this);\n };\n\n ControlsState_LateralINDIState._capnp = {\n displayName: \"LateralINDIState\",\n id: \"939463348632375e\",\n size: new capnp_ts_1.ObjectSize(40, 0)\n };\n return ControlsState_LateralINDIState;\n}(capnp_ts_1.Struct);\n\nexports.ControlsState_LateralINDIState = ControlsState_LateralINDIState;\n\nvar ControlsState_LateralPIDState =\n/** @class */\nfunction (_super) {\n __extends(ControlsState_LateralPIDState, _super);\n\n function ControlsState_LateralPIDState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ControlsState_LateralPIDState.prototype.getActive = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n ControlsState_LateralPIDState.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getSteerAngle = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ControlsState_LateralPIDState.prototype.setSteerAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getSteerRate = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ControlsState_LateralPIDState.prototype.setSteerRate = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getAngleError = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ControlsState_LateralPIDState.prototype.setAngleError = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getP = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ControlsState_LateralPIDState.prototype.setP = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getI = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ControlsState_LateralPIDState.prototype.setI = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getF = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ControlsState_LateralPIDState.prototype.setF = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getOutput = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n ControlsState_LateralPIDState.prototype.setOutput = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.getSaturated = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n ControlsState_LateralPIDState.prototype.setSaturated = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n ControlsState_LateralPIDState.prototype.toString = function () {\n return \"ControlsState_LateralPIDState_\" + _super.prototype.toString.call(this);\n };\n\n ControlsState_LateralPIDState._capnp = {\n displayName: \"LateralPIDState\",\n id: \"f28c5dc9e09375e3\",\n size: new capnp_ts_1.ObjectSize(32, 0)\n };\n return ControlsState_LateralPIDState;\n}(capnp_ts_1.Struct);\n\nexports.ControlsState_LateralPIDState = ControlsState_LateralPIDState;\n\nvar ControlsState_LateralLQRState =\n/** @class */\nfunction (_super) {\n __extends(ControlsState_LateralLQRState, _super);\n\n function ControlsState_LateralLQRState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ControlsState_LateralLQRState.prototype.getActive = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n ControlsState_LateralLQRState.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n ControlsState_LateralLQRState.prototype.getSteerAngle = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ControlsState_LateralLQRState.prototype.setSteerAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ControlsState_LateralLQRState.prototype.getI = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ControlsState_LateralLQRState.prototype.setI = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ControlsState_LateralLQRState.prototype.getOutput = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ControlsState_LateralLQRState.prototype.setOutput = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ControlsState_LateralLQRState.prototype.toString = function () {\n return \"ControlsState_LateralLQRState_\" + _super.prototype.toString.call(this);\n };\n\n ControlsState_LateralLQRState._capnp = {\n displayName: \"LateralLQRState\",\n id: \"9024e2d790c82ade\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return ControlsState_LateralLQRState;\n}(capnp_ts_1.Struct);\n\nexports.ControlsState_LateralLQRState = ControlsState_LateralLQRState;\nvar ControlsState_LateralControlState_Which;\n\n(function (ControlsState_LateralControlState_Which) {\n ControlsState_LateralControlState_Which[ControlsState_LateralControlState_Which[\"INDI_STATE\"] = 0] = \"INDI_STATE\";\n ControlsState_LateralControlState_Which[ControlsState_LateralControlState_Which[\"PID_STATE\"] = 1] = \"PID_STATE\";\n ControlsState_LateralControlState_Which[ControlsState_LateralControlState_Which[\"LQR_STATE\"] = 2] = \"LQR_STATE\";\n})(ControlsState_LateralControlState_Which = exports.ControlsState_LateralControlState_Which || (exports.ControlsState_LateralControlState_Which = {}));\n\nvar ControlsState_LateralControlState =\n/** @class */\nfunction (_super) {\n __extends(ControlsState_LateralControlState, _super);\n\n function ControlsState_LateralControlState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ControlsState_LateralControlState.prototype.adoptIndiState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.disownIndiState = function () {\n return capnp_ts_1.Struct.disown(this.getIndiState());\n };\n\n ControlsState_LateralControlState.prototype.getIndiState = function () {\n capnp_ts_1.Struct.testWhich(\"indiState\", capnp_ts_1.Struct.getUint16(142, this), 0, this);\n return capnp_ts_1.Struct.getStruct(5, ControlsState_LateralINDIState, this);\n };\n\n ControlsState_LateralControlState.prototype.hasIndiState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.initIndiState = function () {\n capnp_ts_1.Struct.setUint16(142, 0, this);\n return capnp_ts_1.Struct.initStructAt(5, ControlsState_LateralINDIState, this);\n };\n\n ControlsState_LateralControlState.prototype.isIndiState = function () {\n return capnp_ts_1.Struct.getUint16(142, this) === 0;\n };\n\n ControlsState_LateralControlState.prototype.setIndiState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.adoptPidState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.disownPidState = function () {\n return capnp_ts_1.Struct.disown(this.getPidState());\n };\n\n ControlsState_LateralControlState.prototype.getPidState = function () {\n capnp_ts_1.Struct.testWhich(\"pidState\", capnp_ts_1.Struct.getUint16(142, this), 1, this);\n return capnp_ts_1.Struct.getStruct(5, ControlsState_LateralPIDState, this);\n };\n\n ControlsState_LateralControlState.prototype.hasPidState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.initPidState = function () {\n capnp_ts_1.Struct.setUint16(142, 1, this);\n return capnp_ts_1.Struct.initStructAt(5, ControlsState_LateralPIDState, this);\n };\n\n ControlsState_LateralControlState.prototype.isPidState = function () {\n return capnp_ts_1.Struct.getUint16(142, this) === 1;\n };\n\n ControlsState_LateralControlState.prototype.setPidState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.adoptLqrState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.disownLqrState = function () {\n return capnp_ts_1.Struct.disown(this.getLqrState());\n };\n\n ControlsState_LateralControlState.prototype.getLqrState = function () {\n capnp_ts_1.Struct.testWhich(\"lqrState\", capnp_ts_1.Struct.getUint16(142, this), 2, this);\n return capnp_ts_1.Struct.getStruct(5, ControlsState_LateralLQRState, this);\n };\n\n ControlsState_LateralControlState.prototype.hasLqrState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.initLqrState = function () {\n capnp_ts_1.Struct.setUint16(142, 2, this);\n return capnp_ts_1.Struct.initStructAt(5, ControlsState_LateralLQRState, this);\n };\n\n ControlsState_LateralControlState.prototype.isLqrState = function () {\n return capnp_ts_1.Struct.getUint16(142, this) === 2;\n };\n\n ControlsState_LateralControlState.prototype.setLqrState = function (value) {\n capnp_ts_1.Struct.setUint16(142, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ControlsState_LateralControlState.prototype.toString = function () {\n return \"ControlsState_LateralControlState_\" + _super.prototype.toString.call(this);\n };\n\n ControlsState_LateralControlState.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(142, this);\n };\n\n ControlsState_LateralControlState.INDI_STATE = ControlsState_LateralControlState_Which.INDI_STATE;\n ControlsState_LateralControlState.PID_STATE = ControlsState_LateralControlState_Which.PID_STATE;\n ControlsState_LateralControlState.LQR_STATE = ControlsState_LateralControlState_Which.LQR_STATE;\n ControlsState_LateralControlState._capnp = {\n displayName: \"lateralControlState\",\n id: \"fd5b914d6b444695\",\n size: new capnp_ts_1.ObjectSize(176, 6)\n };\n return ControlsState_LateralControlState;\n}(capnp_ts_1.Struct);\n\nexports.ControlsState_LateralControlState = ControlsState_LateralControlState;\n\nvar ControlsState =\n/** @class */\nfunction (_super) {\n __extends(ControlsState, _super);\n\n function ControlsState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ControlsState.prototype.getCanMonoTimeDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint64(64, this);\n };\n\n ControlsState.prototype.setCanMonoTimeDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint64(64, value, this);\n };\n\n ControlsState.prototype.adoptCanMonoTimes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ControlsState.prototype.disownCanMonoTimes = function () {\n return capnp_ts_1.Struct.disown(this.getCanMonoTimes());\n };\n\n ControlsState.prototype.getCanMonoTimes = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Uint64List, this);\n };\n\n ControlsState.prototype.hasCanMonoTimes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ControlsState.prototype.initCanMonoTimes = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Uint64List, length, this);\n };\n\n ControlsState.prototype.setCanMonoTimes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ControlsState.prototype.getRadarStateMonoTimeDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint64(72, this);\n };\n\n ControlsState.prototype.setRadarStateMonoTimeDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint64(72, value, this);\n };\n\n ControlsState.prototype.getMdMonoTimeDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint64(80, this);\n };\n\n ControlsState.prototype.setMdMonoTimeDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint64(80, value, this);\n };\n\n ControlsState.prototype.getPlanMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(104, this);\n };\n\n ControlsState.prototype.setPlanMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(104, value, this);\n };\n\n ControlsState.prototype.getPathPlanMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(160, this);\n };\n\n ControlsState.prototype.setPathPlanMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(160, value, this);\n };\n\n ControlsState.prototype.getState = function () {\n return capnp_ts_1.Struct.getUint16(116, this);\n };\n\n ControlsState.prototype.setState = function (value) {\n capnp_ts_1.Struct.setUint16(116, value, this);\n };\n\n ControlsState.prototype.getVEgo = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n ControlsState.prototype.setVEgo = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n ControlsState.prototype.getVEgoRaw = function () {\n return capnp_ts_1.Struct.getFloat32(120, this);\n };\n\n ControlsState.prototype.setVEgoRaw = function (value) {\n capnp_ts_1.Struct.setFloat32(120, value, this);\n };\n\n ControlsState.prototype.getAEgoDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ControlsState.prototype.setAEgoDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ControlsState.prototype.getLongControlState = function () {\n return capnp_ts_1.Struct.getUint16(90, this);\n };\n\n ControlsState.prototype.setLongControlState = function (value) {\n capnp_ts_1.Struct.setUint16(90, value, this);\n };\n\n ControlsState.prototype.getVPid = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ControlsState.prototype.setVPid = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ControlsState.prototype.getVTargetLead = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ControlsState.prototype.setVTargetLead = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ControlsState.prototype.getUpAccelCmd = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ControlsState.prototype.setUpAccelCmd = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ControlsState.prototype.getUiAccelCmd = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ControlsState.prototype.setUiAccelCmd = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ControlsState.prototype.getUfAccelCmd = function () {\n return capnp_ts_1.Struct.getFloat32(124, this);\n };\n\n ControlsState.prototype.setUfAccelCmd = function (value) {\n capnp_ts_1.Struct.setFloat32(124, value, this);\n };\n\n ControlsState.prototype.getYActualDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ControlsState.prototype.setYActualDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ControlsState.prototype.getYDesDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n ControlsState.prototype.setYDesDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n ControlsState.prototype.getUpSteerDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n ControlsState.prototype.setUpSteerDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n ControlsState.prototype.getUiSteerDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n ControlsState.prototype.setUiSteerDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n ControlsState.prototype.getUfSteerDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(128, this);\n };\n\n ControlsState.prototype.setUfSteerDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(128, value, this);\n };\n\n ControlsState.prototype.getATargetMinDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n ControlsState.prototype.setATargetMinDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n ControlsState.prototype.getATargetMaxDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n ControlsState.prototype.setATargetMaxDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n ControlsState.prototype.getATarget = function () {\n return capnp_ts_1.Struct.getFloat32(132, this);\n };\n\n ControlsState.prototype.setATarget = function (value) {\n capnp_ts_1.Struct.setFloat32(132, value, this);\n };\n\n ControlsState.prototype.getJerkFactor = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n ControlsState.prototype.setJerkFactor = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n ControlsState.prototype.getAngleSteers = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n ControlsState.prototype.setAngleSteers = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n ControlsState.prototype.getAngleSteersDes = function () {\n return capnp_ts_1.Struct.getFloat32(112, this);\n };\n\n ControlsState.prototype.setAngleSteersDes = function (value) {\n capnp_ts_1.Struct.setFloat32(112, value, this);\n };\n\n ControlsState.prototype.getCurvature = function () {\n return capnp_ts_1.Struct.getFloat32(136, this);\n };\n\n ControlsState.prototype.setCurvature = function (value) {\n capnp_ts_1.Struct.setFloat32(136, value, this);\n };\n\n ControlsState.prototype.getHudLeadDEPRECATED = function () {\n return capnp_ts_1.Struct.getInt32(56, this);\n };\n\n ControlsState.prototype.setHudLeadDEPRECATED = function (value) {\n capnp_ts_1.Struct.setInt32(56, value, this);\n };\n\n ControlsState.prototype.getCumLagMs = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n ControlsState.prototype.setCumLagMs = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n ControlsState.prototype.getStartMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(152, this);\n };\n\n ControlsState.prototype.setStartMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(152, value, this);\n };\n\n ControlsState.prototype.getMapValid = function () {\n return capnp_ts_1.Struct.getBit(712, this);\n };\n\n ControlsState.prototype.setMapValid = function (value) {\n capnp_ts_1.Struct.setBit(712, value, this);\n };\n\n ControlsState.prototype.getForceDecel = function () {\n return capnp_ts_1.Struct.getBit(713, this);\n };\n\n ControlsState.prototype.setForceDecel = function (value) {\n capnp_ts_1.Struct.setBit(713, value, this);\n };\n\n ControlsState.prototype.getEnabled = function () {\n return capnp_ts_1.Struct.getBit(704, this);\n };\n\n ControlsState.prototype.setEnabled = function (value) {\n capnp_ts_1.Struct.setBit(704, value, this);\n };\n\n ControlsState.prototype.getActive = function () {\n return capnp_ts_1.Struct.getBit(707, this);\n };\n\n ControlsState.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setBit(707, value, this);\n };\n\n ControlsState.prototype.getSteerOverride = function () {\n return capnp_ts_1.Struct.getBit(705, this);\n };\n\n ControlsState.prototype.setSteerOverride = function (value) {\n capnp_ts_1.Struct.setBit(705, value, this);\n };\n\n ControlsState.prototype.getVCruise = function () {\n return capnp_ts_1.Struct.getFloat32(92, this);\n };\n\n ControlsState.prototype.setVCruise = function (value) {\n capnp_ts_1.Struct.setFloat32(92, value, this);\n };\n\n ControlsState.prototype.getRearViewCam = function () {\n return capnp_ts_1.Struct.getBit(706, this);\n };\n\n ControlsState.prototype.setRearViewCam = function (value) {\n capnp_ts_1.Struct.setBit(706, value, this);\n };\n\n ControlsState.prototype.getAlertText1 = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n ControlsState.prototype.setAlertText1 = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n ControlsState.prototype.getAlertText2 = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n ControlsState.prototype.setAlertText2 = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n ControlsState.prototype.getAlertStatus = function () {\n return capnp_ts_1.Struct.getUint16(118, this);\n };\n\n ControlsState.prototype.setAlertStatus = function (value) {\n capnp_ts_1.Struct.setUint16(118, value, this);\n };\n\n ControlsState.prototype.getAlertSize = function () {\n return capnp_ts_1.Struct.getUint16(140, this);\n };\n\n ControlsState.prototype.setAlertSize = function (value) {\n capnp_ts_1.Struct.setUint16(140, value, this);\n };\n\n ControlsState.prototype.getAlertBlinkingRate = function () {\n return capnp_ts_1.Struct.getFloat32(144, this);\n };\n\n ControlsState.prototype.setAlertBlinkingRate = function (value) {\n capnp_ts_1.Struct.setFloat32(144, value, this);\n };\n\n ControlsState.prototype.getAlertType = function () {\n return capnp_ts_1.Struct.getText(3, this);\n };\n\n ControlsState.prototype.setAlertType = function (value) {\n capnp_ts_1.Struct.setText(3, value, this);\n };\n\n ControlsState.prototype.getAlertSoundDEPRECATED = function () {\n return capnp_ts_1.Struct.getText(4, this);\n };\n\n ControlsState.prototype.setAlertSoundDEPRECATED = function (value) {\n capnp_ts_1.Struct.setText(4, value, this);\n };\n\n ControlsState.prototype.getAlertSound = function () {\n return capnp_ts_1.Struct.getUint16(168, this);\n };\n\n ControlsState.prototype.setAlertSound = function (value) {\n capnp_ts_1.Struct.setUint16(168, value, this);\n };\n\n ControlsState.prototype.getAwarenessStatus = function () {\n return capnp_ts_1.Struct.getFloat32(96, this);\n };\n\n ControlsState.prototype.setAwarenessStatus = function (value) {\n capnp_ts_1.Struct.setFloat32(96, value, this);\n };\n\n ControlsState.prototype.getAngleModelBias = function () {\n return capnp_ts_1.Struct.getFloat32(100, this);\n };\n\n ControlsState.prototype.setAngleModelBias = function (value) {\n capnp_ts_1.Struct.setFloat32(100, value, this);\n };\n\n ControlsState.prototype.getGpsPlannerActive = function () {\n return capnp_ts_1.Struct.getBit(708, this);\n };\n\n ControlsState.prototype.setGpsPlannerActive = function (value) {\n capnp_ts_1.Struct.setBit(708, value, this);\n };\n\n ControlsState.prototype.getEngageable = function () {\n return capnp_ts_1.Struct.getBit(709, this);\n };\n\n ControlsState.prototype.setEngageable = function (value) {\n capnp_ts_1.Struct.setBit(709, value, this);\n };\n\n ControlsState.prototype.getDriverMonitoringOn = function () {\n return capnp_ts_1.Struct.getBit(710, this);\n };\n\n ControlsState.prototype.setDriverMonitoringOn = function (value) {\n capnp_ts_1.Struct.setBit(710, value, this);\n };\n\n ControlsState.prototype.getVCurvature = function () {\n return capnp_ts_1.Struct.getFloat32(148, this);\n };\n\n ControlsState.prototype.setVCurvature = function (value) {\n capnp_ts_1.Struct.setFloat32(148, value, this);\n };\n\n ControlsState.prototype.getDecelForTurn = function () {\n return capnp_ts_1.Struct.getBit(711, this);\n };\n\n ControlsState.prototype.setDecelForTurn = function (value) {\n capnp_ts_1.Struct.setBit(711, value, this);\n };\n\n ControlsState.prototype.getDecelForModel = function () {\n return capnp_ts_1.Struct.getBit(714, this);\n };\n\n ControlsState.prototype.setDecelForModel = function (value) {\n capnp_ts_1.Struct.setBit(714, value, this);\n };\n\n ControlsState.prototype.getLateralControlState = function () {\n return capnp_ts_1.Struct.getAs(ControlsState_LateralControlState, this);\n };\n\n ControlsState.prototype.initLateralControlState = function () {\n return capnp_ts_1.Struct.getAs(ControlsState_LateralControlState, this);\n };\n\n ControlsState.prototype.toString = function () {\n return \"ControlsState_\" + _super.prototype.toString.call(this);\n };\n\n ControlsState.OpenpilotState = ControlsState_OpenpilotState;\n ControlsState.LongControlState = ControlsState_LongControlState;\n ControlsState.AlertStatus = ControlsState_AlertStatus;\n ControlsState.AlertSize = ControlsState_AlertSize;\n ControlsState.LateralINDIState = ControlsState_LateralINDIState;\n ControlsState.LateralPIDState = ControlsState_LateralPIDState;\n ControlsState.LateralLQRState = ControlsState_LateralLQRState;\n ControlsState._capnp = {\n displayName: \"ControlsState\",\n id: \"97ff69c53601abf1\",\n size: new capnp_ts_1.ObjectSize(176, 6)\n };\n return ControlsState;\n}(capnp_ts_1.Struct);\n\nexports.ControlsState = ControlsState;\n\nvar LiveEventData =\n/** @class */\nfunction (_super) {\n __extends(LiveEventData, _super);\n\n function LiveEventData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveEventData.prototype.getName = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n LiveEventData.prototype.setName = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n LiveEventData.prototype.getValue = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n LiveEventData.prototype.setValue = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n LiveEventData.prototype.toString = function () {\n return \"LiveEventData_\" + _super.prototype.toString.call(this);\n };\n\n LiveEventData._capnp = {\n displayName: \"LiveEventData\",\n id: \"94b7baa90c5c321e\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return LiveEventData;\n}(capnp_ts_1.Struct);\n\nexports.LiveEventData = LiveEventData;\n\nvar ModelData_PathData =\n/** @class */\nfunction (_super) {\n __extends(ModelData_PathData, _super);\n\n function ModelData_PathData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ModelData_PathData.prototype.adoptPoints = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_PathData.prototype.disownPoints = function () {\n return capnp_ts_1.Struct.disown(this.getPoints());\n };\n\n ModelData_PathData.prototype.getPoints = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n ModelData_PathData.prototype.hasPoints = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_PathData.prototype.initPoints = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n ModelData_PathData.prototype.setPoints = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_PathData.prototype.getProb = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n ModelData_PathData.prototype.setProb = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n ModelData_PathData.prototype.getStd = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ModelData_PathData.prototype.setStd = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ModelData_PathData.prototype.adoptStds = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_PathData.prototype.disownStds = function () {\n return capnp_ts_1.Struct.disown(this.getStds());\n };\n\n ModelData_PathData.prototype.getStds = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n ModelData_PathData.prototype.hasStds = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_PathData.prototype.initStds = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n ModelData_PathData.prototype.setStds = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_PathData.prototype.adoptPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_PathData.prototype.disownPoly = function () {\n return capnp_ts_1.Struct.disown(this.getPoly());\n };\n\n ModelData_PathData.prototype.getPoly = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n ModelData_PathData.prototype.hasPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_PathData.prototype.initPoly = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n ModelData_PathData.prototype.setPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_PathData.prototype.toString = function () {\n return \"ModelData_PathData_\" + _super.prototype.toString.call(this);\n };\n\n ModelData_PathData._capnp = {\n displayName: \"PathData\",\n id: \"8817eeea389e9f08\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return ModelData_PathData;\n}(capnp_ts_1.Struct);\n\nexports.ModelData_PathData = ModelData_PathData;\n\nvar ModelData_LeadData =\n/** @class */\nfunction (_super) {\n __extends(ModelData_LeadData, _super);\n\n function ModelData_LeadData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ModelData_LeadData.prototype.getDist = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n ModelData_LeadData.prototype.setDist = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n ModelData_LeadData.prototype.getProb = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ModelData_LeadData.prototype.setProb = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ModelData_LeadData.prototype.getStd = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ModelData_LeadData.prototype.setStd = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ModelData_LeadData.prototype.getRelVel = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ModelData_LeadData.prototype.setRelVel = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ModelData_LeadData.prototype.getRelVelStd = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ModelData_LeadData.prototype.setRelVelStd = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ModelData_LeadData.prototype.getRelY = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ModelData_LeadData.prototype.setRelY = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ModelData_LeadData.prototype.getRelYStd = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ModelData_LeadData.prototype.setRelYStd = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ModelData_LeadData.prototype.getRelA = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n ModelData_LeadData.prototype.setRelA = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n ModelData_LeadData.prototype.getRelAStd = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n ModelData_LeadData.prototype.setRelAStd = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n ModelData_LeadData.prototype.toString = function () {\n return \"ModelData_LeadData_\" + _super.prototype.toString.call(this);\n };\n\n ModelData_LeadData._capnp = {\n displayName: \"LeadData\",\n id: \"d1c9bef96d26fa91\",\n size: new capnp_ts_1.ObjectSize(40, 0)\n };\n return ModelData_LeadData;\n}(capnp_ts_1.Struct);\n\nexports.ModelData_LeadData = ModelData_LeadData;\n\nvar ModelData_ModelSettings =\n/** @class */\nfunction (_super) {\n __extends(ModelData_ModelSettings, _super);\n\n function ModelData_ModelSettings() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ModelData_ModelSettings.prototype.getBigBoxX = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n ModelData_ModelSettings.prototype.setBigBoxX = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n ModelData_ModelSettings.prototype.getBigBoxY = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n ModelData_ModelSettings.prototype.setBigBoxY = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n ModelData_ModelSettings.prototype.getBigBoxWidth = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n ModelData_ModelSettings.prototype.setBigBoxWidth = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n ModelData_ModelSettings.prototype.getBigBoxHeight = function () {\n return capnp_ts_1.Struct.getUint16(6, this);\n };\n\n ModelData_ModelSettings.prototype.setBigBoxHeight = function (value) {\n capnp_ts_1.Struct.setUint16(6, value, this);\n };\n\n ModelData_ModelSettings.prototype.adoptBoxProjection = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_ModelSettings.prototype.disownBoxProjection = function () {\n return capnp_ts_1.Struct.disown(this.getBoxProjection());\n };\n\n ModelData_ModelSettings.prototype.getBoxProjection = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n ModelData_ModelSettings.prototype.hasBoxProjection = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_ModelSettings.prototype.initBoxProjection = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n ModelData_ModelSettings.prototype.setBoxProjection = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData_ModelSettings.prototype.adoptYuvCorrection = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_ModelSettings.prototype.disownYuvCorrection = function () {\n return capnp_ts_1.Struct.disown(this.getYuvCorrection());\n };\n\n ModelData_ModelSettings.prototype.getYuvCorrection = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n ModelData_ModelSettings.prototype.hasYuvCorrection = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_ModelSettings.prototype.initYuvCorrection = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n ModelData_ModelSettings.prototype.setYuvCorrection = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData_ModelSettings.prototype.adoptInputTransform = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_ModelSettings.prototype.disownInputTransform = function () {\n return capnp_ts_1.Struct.disown(this.getInputTransform());\n };\n\n ModelData_ModelSettings.prototype.getInputTransform = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n ModelData_ModelSettings.prototype.hasInputTransform = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_ModelSettings.prototype.initInputTransform = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n ModelData_ModelSettings.prototype.setInputTransform = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData_ModelSettings.prototype.toString = function () {\n return \"ModelData_ModelSettings_\" + _super.prototype.toString.call(this);\n };\n\n ModelData_ModelSettings._capnp = {\n displayName: \"ModelSettings\",\n id: \"a26e3710efd3e914\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return ModelData_ModelSettings;\n}(capnp_ts_1.Struct);\n\nexports.ModelData_ModelSettings = ModelData_ModelSettings;\n\nvar ModelData =\n/** @class */\nfunction (_super) {\n __extends(ModelData, _super);\n\n function ModelData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ModelData.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n ModelData.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n ModelData.prototype.adoptPath = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData.prototype.disownPath = function () {\n return capnp_ts_1.Struct.disown(this.getPath());\n };\n\n ModelData.prototype.getPath = function () {\n return capnp_ts_1.Struct.getStruct(0, ModelData_PathData, this);\n };\n\n ModelData.prototype.hasPath = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData.prototype.initPath = function () {\n return capnp_ts_1.Struct.initStructAt(0, ModelData_PathData, this);\n };\n\n ModelData.prototype.setPath = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ModelData.prototype.adoptLeftLane = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData.prototype.disownLeftLane = function () {\n return capnp_ts_1.Struct.disown(this.getLeftLane());\n };\n\n ModelData.prototype.getLeftLane = function () {\n return capnp_ts_1.Struct.getStruct(1, ModelData_PathData, this);\n };\n\n ModelData.prototype.hasLeftLane = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData.prototype.initLeftLane = function () {\n return capnp_ts_1.Struct.initStructAt(1, ModelData_PathData, this);\n };\n\n ModelData.prototype.setLeftLane = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ModelData.prototype.adoptRightLane = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData.prototype.disownRightLane = function () {\n return capnp_ts_1.Struct.disown(this.getRightLane());\n };\n\n ModelData.prototype.getRightLane = function () {\n return capnp_ts_1.Struct.getStruct(2, ModelData_PathData, this);\n };\n\n ModelData.prototype.hasRightLane = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData.prototype.initRightLane = function () {\n return capnp_ts_1.Struct.initStructAt(2, ModelData_PathData, this);\n };\n\n ModelData.prototype.setRightLane = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ModelData.prototype.adoptLead = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n ModelData.prototype.disownLead = function () {\n return capnp_ts_1.Struct.disown(this.getLead());\n };\n\n ModelData.prototype.getLead = function () {\n return capnp_ts_1.Struct.getStruct(3, ModelData_LeadData, this);\n };\n\n ModelData.prototype.hasLead = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n ModelData.prototype.initLead = function () {\n return capnp_ts_1.Struct.initStructAt(3, ModelData_LeadData, this);\n };\n\n ModelData.prototype.setLead = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n ModelData.prototype.adoptFreePath = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ModelData.prototype.disownFreePath = function () {\n return capnp_ts_1.Struct.disown(this.getFreePath());\n };\n\n ModelData.prototype.getFreePath = function () {\n return capnp_ts_1.Struct.getList(5, capnp.Float32List, this);\n };\n\n ModelData.prototype.hasFreePath = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ModelData.prototype.initFreePath = function (length) {\n return capnp_ts_1.Struct.initList(5, capnp.Float32List, length, this);\n };\n\n ModelData.prototype.setFreePath = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n ModelData.prototype.adoptSettings = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n ModelData.prototype.disownSettings = function () {\n return capnp_ts_1.Struct.disown(this.getSettings());\n };\n\n ModelData.prototype.getSettings = function () {\n return capnp_ts_1.Struct.getStruct(4, ModelData_ModelSettings, this);\n };\n\n ModelData.prototype.hasSettings = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n ModelData.prototype.initSettings = function () {\n return capnp_ts_1.Struct.initStructAt(4, ModelData_ModelSettings, this);\n };\n\n ModelData.prototype.setSettings = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n ModelData.prototype.adoptLeadFuture = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n ModelData.prototype.disownLeadFuture = function () {\n return capnp_ts_1.Struct.disown(this.getLeadFuture());\n };\n\n ModelData.prototype.getLeadFuture = function () {\n return capnp_ts_1.Struct.getStruct(6, ModelData_LeadData, this);\n };\n\n ModelData.prototype.hasLeadFuture = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(6, this));\n };\n\n ModelData.prototype.initLeadFuture = function () {\n return capnp_ts_1.Struct.initStructAt(6, ModelData_LeadData, this);\n };\n\n ModelData.prototype.setLeadFuture = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n ModelData.prototype.adoptSpeed = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n ModelData.prototype.disownSpeed = function () {\n return capnp_ts_1.Struct.disown(this.getSpeed());\n };\n\n ModelData.prototype.getSpeed = function () {\n return capnp_ts_1.Struct.getList(7, capnp.Float32List, this);\n };\n\n ModelData.prototype.hasSpeed = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(7, this));\n };\n\n ModelData.prototype.initSpeed = function (length) {\n return capnp_ts_1.Struct.initList(7, capnp.Float32List, length, this);\n };\n\n ModelData.prototype.setSpeed = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n ModelData.prototype.toString = function () {\n return \"ModelData_\" + _super.prototype.toString.call(this);\n };\n\n ModelData.PathData = ModelData_PathData;\n ModelData.LeadData = ModelData_LeadData;\n ModelData.ModelSettings = ModelData_ModelSettings;\n ModelData._capnp = {\n displayName: \"ModelData\",\n id: \"b8aad62cffef28a9\",\n size: new capnp_ts_1.ObjectSize(8, 8)\n };\n return ModelData;\n}(capnp_ts_1.Struct);\n\nexports.ModelData = ModelData;\n\nvar CalibrationFeatures =\n/** @class */\nfunction (_super) {\n __extends(CalibrationFeatures, _super);\n\n function CalibrationFeatures() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CalibrationFeatures.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n CalibrationFeatures.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n CalibrationFeatures.prototype.adoptP0 = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CalibrationFeatures.prototype.disownP0 = function () {\n return capnp_ts_1.Struct.disown(this.getP0());\n };\n\n CalibrationFeatures.prototype.getP0 = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n CalibrationFeatures.prototype.hasP0 = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CalibrationFeatures.prototype.initP0 = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n CalibrationFeatures.prototype.setP0 = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CalibrationFeatures.prototype.adoptP1 = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CalibrationFeatures.prototype.disownP1 = function () {\n return capnp_ts_1.Struct.disown(this.getP1());\n };\n\n CalibrationFeatures.prototype.getP1 = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n CalibrationFeatures.prototype.hasP1 = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CalibrationFeatures.prototype.initP1 = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n CalibrationFeatures.prototype.setP1 = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CalibrationFeatures.prototype.adoptStatus = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CalibrationFeatures.prototype.disownStatus = function () {\n return capnp_ts_1.Struct.disown(this.getStatus());\n };\n\n CalibrationFeatures.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Int8List, this);\n };\n\n CalibrationFeatures.prototype.hasStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CalibrationFeatures.prototype.initStatus = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Int8List, length, this);\n };\n\n CalibrationFeatures.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CalibrationFeatures.prototype.toString = function () {\n return \"CalibrationFeatures_\" + _super.prototype.toString.call(this);\n };\n\n CalibrationFeatures._capnp = {\n displayName: \"CalibrationFeatures\",\n id: \"8fdfadb254ea867a\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return CalibrationFeatures;\n}(capnp_ts_1.Struct);\n\nexports.CalibrationFeatures = CalibrationFeatures;\nvar EncodeIndex_Type;\n\n(function (EncodeIndex_Type) {\n EncodeIndex_Type[EncodeIndex_Type[\"BIG_BOX_LOSSLESS\"] = 0] = \"BIG_BOX_LOSSLESS\";\n EncodeIndex_Type[EncodeIndex_Type[\"FULL_HEVC\"] = 1] = \"FULL_HEVC\";\n EncodeIndex_Type[EncodeIndex_Type[\"BIG_BOX_HEVC\"] = 2] = \"BIG_BOX_HEVC\";\n EncodeIndex_Type[EncodeIndex_Type[\"CHFFR_ANDROID_H264\"] = 3] = \"CHFFR_ANDROID_H264\";\n EncodeIndex_Type[EncodeIndex_Type[\"FULL_LOSSLESS_CLIP\"] = 4] = \"FULL_LOSSLESS_CLIP\";\n EncodeIndex_Type[EncodeIndex_Type[\"FRONT\"] = 5] = \"FRONT\";\n})(EncodeIndex_Type = exports.EncodeIndex_Type || (exports.EncodeIndex_Type = {}));\n\nvar EncodeIndex =\n/** @class */\nfunction (_super) {\n __extends(EncodeIndex, _super);\n\n function EncodeIndex() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EncodeIndex.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n EncodeIndex.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n EncodeIndex.prototype.getType = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n EncodeIndex.prototype.setType = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n EncodeIndex.prototype.getEncodeId = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n EncodeIndex.prototype.setEncodeId = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n EncodeIndex.prototype.getSegmentNum = function () {\n return capnp_ts_1.Struct.getInt32(12, this);\n };\n\n EncodeIndex.prototype.setSegmentNum = function (value) {\n capnp_ts_1.Struct.setInt32(12, value, this);\n };\n\n EncodeIndex.prototype.getSegmentId = function () {\n return capnp_ts_1.Struct.getUint32(16, this);\n };\n\n EncodeIndex.prototype.setSegmentId = function (value) {\n capnp_ts_1.Struct.setUint32(16, value, this);\n };\n\n EncodeIndex.prototype.getSegmentIdEncode = function () {\n return capnp_ts_1.Struct.getUint32(20, this);\n };\n\n EncodeIndex.prototype.setSegmentIdEncode = function (value) {\n capnp_ts_1.Struct.setUint32(20, value, this);\n };\n\n EncodeIndex.prototype.toString = function () {\n return \"EncodeIndex_\" + _super.prototype.toString.call(this);\n };\n\n EncodeIndex.Type = EncodeIndex_Type;\n EncodeIndex._capnp = {\n displayName: \"EncodeIndex\",\n id: \"89d394e3541735fc\",\n size: new capnp_ts_1.ObjectSize(24, 0)\n };\n return EncodeIndex;\n}(capnp_ts_1.Struct);\n\nexports.EncodeIndex = EncodeIndex;\n\nvar AndroidLogEntry =\n/** @class */\nfunction (_super) {\n __extends(AndroidLogEntry, _super);\n\n function AndroidLogEntry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidLogEntry.prototype.getId = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n AndroidLogEntry.prototype.setId = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n AndroidLogEntry.prototype.getTs = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n AndroidLogEntry.prototype.setTs = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n AndroidLogEntry.prototype.getPriority = function () {\n return capnp_ts_1.Struct.getUint8(1, this);\n };\n\n AndroidLogEntry.prototype.setPriority = function (value) {\n capnp_ts_1.Struct.setUint8(1, value, this);\n };\n\n AndroidLogEntry.prototype.getPid = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n AndroidLogEntry.prototype.setPid = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n AndroidLogEntry.prototype.getTid = function () {\n return capnp_ts_1.Struct.getInt32(16, this);\n };\n\n AndroidLogEntry.prototype.setTid = function (value) {\n capnp_ts_1.Struct.setInt32(16, value, this);\n };\n\n AndroidLogEntry.prototype.getTag = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n AndroidLogEntry.prototype.setTag = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n AndroidLogEntry.prototype.getMessage = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n AndroidLogEntry.prototype.setMessage = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n AndroidLogEntry.prototype.toString = function () {\n return \"AndroidLogEntry_\" + _super.prototype.toString.call(this);\n };\n\n AndroidLogEntry._capnp = {\n displayName: \"AndroidLogEntry\",\n id: \"ea095da1894f7d85\",\n size: new capnp_ts_1.ObjectSize(24, 2)\n };\n return AndroidLogEntry;\n}(capnp_ts_1.Struct);\n\nexports.AndroidLogEntry = AndroidLogEntry;\n\nvar LogRotate =\n/** @class */\nfunction (_super) {\n __extends(LogRotate, _super);\n\n function LogRotate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LogRotate.prototype.getSegmentNum = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n LogRotate.prototype.setSegmentNum = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n LogRotate.prototype.getPath = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n LogRotate.prototype.setPath = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n LogRotate.prototype.toString = function () {\n return \"LogRotate_\" + _super.prototype.toString.call(this);\n };\n\n LogRotate._capnp = {\n displayName: \"LogRotate\",\n id: \"9811e1f38f62f2d1\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return LogRotate;\n}(capnp_ts_1.Struct);\n\nexports.LogRotate = LogRotate;\n\nvar Plan_GpsTrajectory =\n/** @class */\nfunction (_super) {\n __extends(Plan_GpsTrajectory, _super);\n\n function Plan_GpsTrajectory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Plan_GpsTrajectory.prototype.adoptX = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan_GpsTrajectory.prototype.disownX = function () {\n return capnp_ts_1.Struct.disown(this.getX());\n };\n\n Plan_GpsTrajectory.prototype.getX = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n Plan_GpsTrajectory.prototype.hasX = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan_GpsTrajectory.prototype.initX = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n Plan_GpsTrajectory.prototype.setX = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan_GpsTrajectory.prototype.adoptY = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan_GpsTrajectory.prototype.disownY = function () {\n return capnp_ts_1.Struct.disown(this.getY());\n };\n\n Plan_GpsTrajectory.prototype.getY = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n Plan_GpsTrajectory.prototype.hasY = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan_GpsTrajectory.prototype.initY = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n Plan_GpsTrajectory.prototype.setY = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan_GpsTrajectory.prototype.toString = function () {\n return \"Plan_GpsTrajectory_\" + _super.prototype.toString.call(this);\n };\n\n Plan_GpsTrajectory._capnp = {\n displayName: \"GpsTrajectory\",\n id: \"8cfeb072f5301000\",\n size: new capnp_ts_1.ObjectSize(0, 2)\n };\n return Plan_GpsTrajectory;\n}(capnp_ts_1.Struct);\n\nexports.Plan_GpsTrajectory = Plan_GpsTrajectory;\nvar Plan_LongitudinalPlanSource;\n\n(function (Plan_LongitudinalPlanSource) {\n Plan_LongitudinalPlanSource[Plan_LongitudinalPlanSource[\"CRUISE\"] = 0] = \"CRUISE\";\n Plan_LongitudinalPlanSource[Plan_LongitudinalPlanSource[\"MPC1\"] = 1] = \"MPC1\";\n Plan_LongitudinalPlanSource[Plan_LongitudinalPlanSource[\"MPC2\"] = 2] = \"MPC2\";\n Plan_LongitudinalPlanSource[Plan_LongitudinalPlanSource[\"MPC3\"] = 3] = \"MPC3\";\n Plan_LongitudinalPlanSource[Plan_LongitudinalPlanSource[\"MODEL\"] = 4] = \"MODEL\";\n})(Plan_LongitudinalPlanSource = exports.Plan_LongitudinalPlanSource || (exports.Plan_LongitudinalPlanSource = {}));\n\nvar Plan =\n/** @class */\nfunction (_super) {\n __extends(Plan, _super);\n\n function Plan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Plan.prototype.getMdMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n Plan.prototype.setMdMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n Plan.prototype.getRadarStateMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n Plan.prototype.setRadarStateMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n Plan.prototype.getCommIssue = function () {\n return capnp_ts_1.Struct.getBit(11, this);\n };\n\n Plan.prototype.setCommIssue = function (value) {\n capnp_ts_1.Struct.setBit(11, value, this);\n };\n\n Plan.prototype.adoptEventsDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n Plan.prototype.disownEventsDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getEventsDEPRECATED());\n };\n\n Plan.prototype.getEventsDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(2, Plan._EventsDEPRECATED, this);\n };\n\n Plan.prototype.hasEventsDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n Plan.prototype.initEventsDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(2, Plan._EventsDEPRECATED, length, this);\n };\n\n Plan.prototype.setEventsDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n Plan.prototype.getLateralValidDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n Plan.prototype.setLateralValidDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n Plan.prototype.adoptDPolyDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan.prototype.disownDPolyDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getDPolyDEPRECATED());\n };\n\n Plan.prototype.getDPolyDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n Plan.prototype.hasDPolyDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan.prototype.initDPolyDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n Plan.prototype.setDPolyDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Plan.prototype.getLaneWidthDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n Plan.prototype.setLaneWidthDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n Plan.prototype.getLongitudinalValidDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n Plan.prototype.setLongitudinalValidDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n Plan.prototype.getVCruise = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n Plan.prototype.setVCruise = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n Plan.prototype.getACruise = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n Plan.prototype.setACruise = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n Plan.prototype.getVTarget = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n Plan.prototype.setVTarget = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n Plan.prototype.getVTargetFuture = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n Plan.prototype.setVTargetFuture = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n Plan.prototype.getVMax = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n Plan.prototype.setVMax = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n Plan.prototype.getATargetMinDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n Plan.prototype.setATargetMinDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n Plan.prototype.getATargetMaxDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n Plan.prototype.setATargetMaxDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n Plan.prototype.getATarget = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n Plan.prototype.setATarget = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n Plan.prototype.getVStart = function () {\n return capnp_ts_1.Struct.getFloat32(64, this);\n };\n\n Plan.prototype.setVStart = function (value) {\n capnp_ts_1.Struct.setFloat32(64, value, this);\n };\n\n Plan.prototype.getAStart = function () {\n return capnp_ts_1.Struct.getFloat32(68, this);\n };\n\n Plan.prototype.setAStart = function (value) {\n capnp_ts_1.Struct.setFloat32(68, value, this);\n };\n\n Plan.prototype.getJerkFactor = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n Plan.prototype.setJerkFactor = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n Plan.prototype.getHasLead = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n Plan.prototype.setHasLead = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n Plan.prototype.getHasLeftLaneDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(6, this);\n };\n\n Plan.prototype.setHasLeftLaneDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(6, value, this);\n };\n\n Plan.prototype.getHasRightLaneDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(7, this);\n };\n\n Plan.prototype.setHasRightLaneDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(7, value, this);\n };\n\n Plan.prototype.getFcw = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n Plan.prototype.setFcw = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n Plan.prototype.getLongitudinalPlanSource = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n Plan.prototype.setLongitudinalPlanSource = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n Plan.prototype.adoptGpsTrajectory = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan.prototype.disownGpsTrajectory = function () {\n return capnp_ts_1.Struct.disown(this.getGpsTrajectory());\n };\n\n Plan.prototype.getGpsTrajectory = function () {\n return capnp_ts_1.Struct.getStruct(1, Plan_GpsTrajectory, this);\n };\n\n Plan.prototype.hasGpsTrajectory = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan.prototype.initGpsTrajectory = function () {\n return capnp_ts_1.Struct.initStructAt(1, Plan_GpsTrajectory, this);\n };\n\n Plan.prototype.setGpsTrajectory = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Plan.prototype.getGpsPlannerActive = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n Plan.prototype.setGpsPlannerActive = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n Plan.prototype.getVCurvature = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n Plan.prototype.setVCurvature = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n Plan.prototype.getDecelForTurn = function () {\n return capnp_ts_1.Struct.getBit(5, this);\n };\n\n Plan.prototype.setDecelForTurn = function (value) {\n capnp_ts_1.Struct.setBit(5, value, this);\n };\n\n Plan.prototype.getMapValid = function () {\n return capnp_ts_1.Struct.getBit(8, this);\n };\n\n Plan.prototype.setMapValid = function (value) {\n capnp_ts_1.Struct.setBit(8, value, this);\n };\n\n Plan.prototype.getRadarValid = function () {\n return capnp_ts_1.Struct.getBit(9, this);\n };\n\n Plan.prototype.setRadarValid = function (value) {\n capnp_ts_1.Struct.setBit(9, value, this);\n };\n\n Plan.prototype.getRadarCanError = function () {\n return capnp_ts_1.Struct.getBit(10, this);\n };\n\n Plan.prototype.setRadarCanError = function (value) {\n capnp_ts_1.Struct.setBit(10, value, this);\n };\n\n Plan.prototype.getProcessingDelay = function () {\n return capnp_ts_1.Struct.getFloat32(72, this);\n };\n\n Plan.prototype.setProcessingDelay = function (value) {\n capnp_ts_1.Struct.setFloat32(72, value, this);\n };\n\n Plan.prototype.toString = function () {\n return \"Plan_\" + _super.prototype.toString.call(this);\n };\n\n Plan.GpsTrajectory = Plan_GpsTrajectory;\n Plan.LongitudinalPlanSource = Plan_LongitudinalPlanSource;\n Plan._capnp = {\n displayName: \"Plan\",\n id: \"e00b5b3eba12876c\",\n size: new capnp_ts_1.ObjectSize(80, 3)\n };\n return Plan;\n}(capnp_ts_1.Struct);\n\nexports.Plan = Plan;\n\nvar PathPlan =\n/** @class */\nfunction (_super) {\n __extends(PathPlan, _super);\n\n function PathPlan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n PathPlan.prototype.getLaneWidth = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n PathPlan.prototype.setLaneWidth = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n PathPlan.prototype.adoptDPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n PathPlan.prototype.disownDPoly = function () {\n return capnp_ts_1.Struct.disown(this.getDPoly());\n };\n\n PathPlan.prototype.getDPoly = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n PathPlan.prototype.hasDPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n PathPlan.prototype.initDPoly = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n PathPlan.prototype.setDPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n PathPlan.prototype.adoptCPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n PathPlan.prototype.disownCPoly = function () {\n return capnp_ts_1.Struct.disown(this.getCPoly());\n };\n\n PathPlan.prototype.getCPoly = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n PathPlan.prototype.hasCPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n PathPlan.prototype.initCPoly = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n PathPlan.prototype.setCPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n PathPlan.prototype.getCProb = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n PathPlan.prototype.setCProb = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n PathPlan.prototype.adoptLPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n PathPlan.prototype.disownLPoly = function () {\n return capnp_ts_1.Struct.disown(this.getLPoly());\n };\n\n PathPlan.prototype.getLPoly = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n PathPlan.prototype.hasLPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n PathPlan.prototype.initLPoly = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n PathPlan.prototype.setLPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n PathPlan.prototype.getLProb = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n PathPlan.prototype.setLProb = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n PathPlan.prototype.adoptRPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n PathPlan.prototype.disownRPoly = function () {\n return capnp_ts_1.Struct.disown(this.getRPoly());\n };\n\n PathPlan.prototype.getRPoly = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n PathPlan.prototype.hasRPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n PathPlan.prototype.initRPoly = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n PathPlan.prototype.setRPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n PathPlan.prototype.getRProb = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n PathPlan.prototype.setRProb = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n PathPlan.prototype.getAngleSteers = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n PathPlan.prototype.setAngleSteers = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n PathPlan.prototype.getRateSteers = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n PathPlan.prototype.setRateSteers = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n PathPlan.prototype.getMpcSolutionValid = function () {\n return capnp_ts_1.Struct.getBit(160, this);\n };\n\n PathPlan.prototype.setMpcSolutionValid = function (value) {\n capnp_ts_1.Struct.setBit(160, value, this);\n };\n\n PathPlan.prototype.getParamsValid = function () {\n return capnp_ts_1.Struct.getBit(161, this);\n };\n\n PathPlan.prototype.setParamsValid = function (value) {\n capnp_ts_1.Struct.setBit(161, value, this);\n };\n\n PathPlan.prototype.getModelValidDEPRECATED = function () {\n return capnp_ts_1.Struct.getBit(162, this);\n };\n\n PathPlan.prototype.setModelValidDEPRECATED = function (value) {\n capnp_ts_1.Struct.setBit(162, value, this);\n };\n\n PathPlan.prototype.getAngleOffset = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n PathPlan.prototype.setAngleOffset = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n PathPlan.prototype.getSensorValid = function () {\n return capnp_ts_1.Struct.getBit(163, this);\n };\n\n PathPlan.prototype.setSensorValid = function (value) {\n capnp_ts_1.Struct.setBit(163, value, this);\n };\n\n PathPlan.prototype.getCommIssue = function () {\n return capnp_ts_1.Struct.getBit(164, this);\n };\n\n PathPlan.prototype.setCommIssue = function (value) {\n capnp_ts_1.Struct.setBit(164, value, this);\n };\n\n PathPlan.prototype.getPosenetValid = function () {\n return capnp_ts_1.Struct.getBit(165, this);\n };\n\n PathPlan.prototype.setPosenetValid = function (value) {\n capnp_ts_1.Struct.setBit(165, value, this);\n };\n\n PathPlan.prototype.toString = function () {\n return \"PathPlan_\" + _super.prototype.toString.call(this);\n };\n\n PathPlan._capnp = {\n displayName: \"PathPlan\",\n id: \"e1e9318e2ae8b51e\",\n size: new capnp_ts_1.ObjectSize(32, 4)\n };\n return PathPlan;\n}(capnp_ts_1.Struct);\n\nexports.PathPlan = PathPlan;\n\nvar LiveLocationData_Accuracy =\n/** @class */\nfunction (_super) {\n __extends(LiveLocationData_Accuracy, _super);\n\n function LiveLocationData_Accuracy() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveLocationData_Accuracy.prototype.adoptPNEDError = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData_Accuracy.prototype.disownPNEDError = function () {\n return capnp_ts_1.Struct.disown(this.getPNEDError());\n };\n\n LiveLocationData_Accuracy.prototype.getPNEDError = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveLocationData_Accuracy.prototype.hasPNEDError = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData_Accuracy.prototype.initPNEDError = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveLocationData_Accuracy.prototype.setPNEDError = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData_Accuracy.prototype.adoptVNEDError = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData_Accuracy.prototype.disownVNEDError = function () {\n return capnp_ts_1.Struct.disown(this.getVNEDError());\n };\n\n LiveLocationData_Accuracy.prototype.getVNEDError = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveLocationData_Accuracy.prototype.hasVNEDError = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData_Accuracy.prototype.initVNEDError = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveLocationData_Accuracy.prototype.setVNEDError = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData_Accuracy.prototype.getRollError = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n LiveLocationData_Accuracy.prototype.setRollError = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.getPitchError = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveLocationData_Accuracy.prototype.setPitchError = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.getHeadingError = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n LiveLocationData_Accuracy.prototype.setHeadingError = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.getEllipsoidSemiMajorError = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n LiveLocationData_Accuracy.prototype.setEllipsoidSemiMajorError = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.getEllipsoidSemiMinorError = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n LiveLocationData_Accuracy.prototype.setEllipsoidSemiMinorError = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.getEllipsoidOrientationError = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n LiveLocationData_Accuracy.prototype.setEllipsoidOrientationError = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n LiveLocationData_Accuracy.prototype.toString = function () {\n return \"LiveLocationData_Accuracy_\" + _super.prototype.toString.call(this);\n };\n\n LiveLocationData_Accuracy._capnp = {\n displayName: \"Accuracy\",\n id: \"943dc4625473b03f\",\n size: new capnp_ts_1.ObjectSize(24, 2)\n };\n return LiveLocationData_Accuracy;\n}(capnp_ts_1.Struct);\n\nexports.LiveLocationData_Accuracy = LiveLocationData_Accuracy;\nvar LiveLocationData_SensorSource;\n\n(function (LiveLocationData_SensorSource) {\n LiveLocationData_SensorSource[LiveLocationData_SensorSource[\"APPLANIX\"] = 0] = \"APPLANIX\";\n LiveLocationData_SensorSource[LiveLocationData_SensorSource[\"KALMAN\"] = 1] = \"KALMAN\";\n LiveLocationData_SensorSource[LiveLocationData_SensorSource[\"ORBSLAM\"] = 2] = \"ORBSLAM\";\n LiveLocationData_SensorSource[LiveLocationData_SensorSource[\"TIMING\"] = 3] = \"TIMING\";\n LiveLocationData_SensorSource[LiveLocationData_SensorSource[\"DUMMY\"] = 4] = \"DUMMY\";\n})(LiveLocationData_SensorSource = exports.LiveLocationData_SensorSource || (exports.LiveLocationData_SensorSource = {}));\n\nvar LiveLocationData =\n/** @class */\nfunction (_super) {\n __extends(LiveLocationData, _super);\n\n function LiveLocationData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveLocationData.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n LiveLocationData.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n LiveLocationData.prototype.getLat = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n LiveLocationData.prototype.setLat = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n LiveLocationData.prototype.getLon = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n LiveLocationData.prototype.setLon = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n LiveLocationData.prototype.getAlt = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveLocationData.prototype.setAlt = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveLocationData.prototype.getSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n LiveLocationData.prototype.setSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n LiveLocationData.prototype.adoptVNED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData.prototype.disownVNED = function () {\n return capnp_ts_1.Struct.disown(this.getVNED());\n };\n\n LiveLocationData.prototype.getVNED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveLocationData.prototype.hasVNED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData.prototype.initVNED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveLocationData.prototype.setVNED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLocationData.prototype.getRoll = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n LiveLocationData.prototype.setRoll = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n LiveLocationData.prototype.getPitch = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n LiveLocationData.prototype.setPitch = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n LiveLocationData.prototype.getHeading = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n LiveLocationData.prototype.setHeading = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n LiveLocationData.prototype.getWanderAngle = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n LiveLocationData.prototype.setWanderAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n LiveLocationData.prototype.getTrackAngle = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n LiveLocationData.prototype.setTrackAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n LiveLocationData.prototype.adoptGyro = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData.prototype.disownGyro = function () {\n return capnp_ts_1.Struct.disown(this.getGyro());\n };\n\n LiveLocationData.prototype.getGyro = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveLocationData.prototype.hasGyro = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData.prototype.initGyro = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveLocationData.prototype.setGyro = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLocationData.prototype.adoptAccel = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLocationData.prototype.disownAccel = function () {\n return capnp_ts_1.Struct.disown(this.getAccel());\n };\n\n LiveLocationData.prototype.getAccel = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n LiveLocationData.prototype.hasAccel = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLocationData.prototype.initAccel = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n LiveLocationData.prototype.setAccel = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLocationData.prototype.adoptAccuracy = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLocationData.prototype.disownAccuracy = function () {\n return capnp_ts_1.Struct.disown(this.getAccuracy());\n };\n\n LiveLocationData.prototype.getAccuracy = function () {\n return capnp_ts_1.Struct.getStruct(3, LiveLocationData_Accuracy, this);\n };\n\n LiveLocationData.prototype.hasAccuracy = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLocationData.prototype.initAccuracy = function () {\n return capnp_ts_1.Struct.initStructAt(3, LiveLocationData_Accuracy, this);\n };\n\n LiveLocationData.prototype.setAccuracy = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLocationData.prototype.getSource = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n LiveLocationData.prototype.setSource = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n LiveLocationData.prototype.getFixMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(48, this);\n };\n\n LiveLocationData.prototype.setFixMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(48, value, this);\n };\n\n LiveLocationData.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getInt32(56, this);\n };\n\n LiveLocationData.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setInt32(56, value, this);\n };\n\n LiveLocationData.prototype.getTimeOfWeek = function () {\n return capnp_ts_1.Struct.getFloat64(64, this);\n };\n\n LiveLocationData.prototype.setTimeOfWeek = function (value) {\n capnp_ts_1.Struct.setFloat64(64, value, this);\n };\n\n LiveLocationData.prototype.adoptPositionECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLocationData.prototype.disownPositionECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPositionECEF());\n };\n\n LiveLocationData.prototype.getPositionECEF = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float64List, this);\n };\n\n LiveLocationData.prototype.hasPositionECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLocationData.prototype.initPositionECEF = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float64List, length, this);\n };\n\n LiveLocationData.prototype.setPositionECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLocationData.prototype.adoptPoseQuatECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLocationData.prototype.disownPoseQuatECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPoseQuatECEF());\n };\n\n LiveLocationData.prototype.getPoseQuatECEF = function () {\n return capnp_ts_1.Struct.getList(5, capnp.Float32List, this);\n };\n\n LiveLocationData.prototype.hasPoseQuatECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLocationData.prototype.initPoseQuatECEF = function (length) {\n return capnp_ts_1.Struct.initList(5, capnp.Float32List, length, this);\n };\n\n LiveLocationData.prototype.setPoseQuatECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLocationData.prototype.getPitchCalibration = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n LiveLocationData.prototype.setPitchCalibration = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n LiveLocationData.prototype.getYawCalibration = function () {\n return capnp_ts_1.Struct.getFloat32(72, this);\n };\n\n LiveLocationData.prototype.setYawCalibration = function (value) {\n capnp_ts_1.Struct.setFloat32(72, value, this);\n };\n\n LiveLocationData.prototype.adoptImuFrame = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n LiveLocationData.prototype.disownImuFrame = function () {\n return capnp_ts_1.Struct.disown(this.getImuFrame());\n };\n\n LiveLocationData.prototype.getImuFrame = function () {\n return capnp_ts_1.Struct.getList(6, capnp.Float32List, this);\n };\n\n LiveLocationData.prototype.hasImuFrame = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(6, this));\n };\n\n LiveLocationData.prototype.initImuFrame = function (length) {\n return capnp_ts_1.Struct.initList(6, capnp.Float32List, length, this);\n };\n\n LiveLocationData.prototype.setImuFrame = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n LiveLocationData.prototype.toString = function () {\n return \"LiveLocationData_\" + _super.prototype.toString.call(this);\n };\n\n LiveLocationData.Accuracy = LiveLocationData_Accuracy;\n LiveLocationData.SensorSource = LiveLocationData_SensorSource;\n LiveLocationData._capnp = {\n displayName: \"LiveLocationData\",\n id: \"b99b2bc7a57e8128\",\n size: new capnp_ts_1.ObjectSize(80, 7)\n };\n return LiveLocationData;\n}(capnp_ts_1.Struct);\n\nexports.LiveLocationData = LiveLocationData;\n\nvar EthernetPacket =\n/** @class */\nfunction (_super) {\n __extends(EthernetPacket, _super);\n\n function EthernetPacket() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n EthernetPacket.prototype.adoptPkt = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n EthernetPacket.prototype.disownPkt = function () {\n return capnp_ts_1.Struct.disown(this.getPkt());\n };\n\n EthernetPacket.prototype.getPkt = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n EthernetPacket.prototype.hasPkt = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n EthernetPacket.prototype.initPkt = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n EthernetPacket.prototype.setPkt = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n EthernetPacket.prototype.getTs = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n EthernetPacket.prototype.setTs = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n EthernetPacket.prototype.toString = function () {\n return \"EthernetPacket_\" + _super.prototype.toString.call(this);\n };\n\n EthernetPacket._capnp = {\n displayName: \"EthernetPacket\",\n id: \"a99a9d5b33cf5859\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return EthernetPacket;\n}(capnp_ts_1.Struct);\n\nexports.EthernetPacket = EthernetPacket;\n\nvar NavUpdate_LatLng =\n/** @class */\nfunction (_super) {\n __extends(NavUpdate_LatLng, _super);\n\n function NavUpdate_LatLng() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n NavUpdate_LatLng.prototype.getLat = function () {\n return capnp_ts_1.Struct.getFloat64(0, this);\n };\n\n NavUpdate_LatLng.prototype.setLat = function (value) {\n capnp_ts_1.Struct.setFloat64(0, value, this);\n };\n\n NavUpdate_LatLng.prototype.getLng = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n NavUpdate_LatLng.prototype.setLng = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n NavUpdate_LatLng.prototype.toString = function () {\n return \"NavUpdate_LatLng_\" + _super.prototype.toString.call(this);\n };\n\n NavUpdate_LatLng._capnp = {\n displayName: \"LatLng\",\n id: \"9eaef9187cadbb9b\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return NavUpdate_LatLng;\n}(capnp_ts_1.Struct);\n\nexports.NavUpdate_LatLng = NavUpdate_LatLng;\nvar NavUpdate_Segment_Instruction;\n\n(function (NavUpdate_Segment_Instruction) {\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"TURN_LEFT\"] = 0] = \"TURN_LEFT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"TURN_RIGHT\"] = 1] = \"TURN_RIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"KEEP_LEFT\"] = 2] = \"KEEP_LEFT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"KEEP_RIGHT\"] = 3] = \"KEEP_RIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"STRAIGHT\"] = 4] = \"STRAIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_EXIT_NUMBER\"] = 5] = \"ROUNDABOUT_EXIT_NUMBER\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_EXIT\"] = 6] = \"ROUNDABOUT_EXIT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_TURN_LEFT\"] = 7] = \"ROUNDABOUT_TURN_LEFT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UNKN8\"] = 8] = \"UNKN8\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_STRAIGHT\"] = 9] = \"ROUNDABOUT_STRAIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UNKN10\"] = 10] = \"UNKN10\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_TURN_RIGHT\"] = 11] = \"ROUNDABOUT_TURN_RIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UNKN12\"] = 12] = \"UNKN12\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ROUNDABOUT_UTURN\"] = 13] = \"ROUNDABOUT_UTURN\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UNKN14\"] = 14] = \"UNKN14\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"ARRIVE\"] = 15] = \"ARRIVE\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"EXIT_LEFT\"] = 16] = \"EXIT_LEFT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"EXIT_RIGHT\"] = 17] = \"EXIT_RIGHT\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UNKN18\"] = 18] = \"UNKN18\";\n NavUpdate_Segment_Instruction[NavUpdate_Segment_Instruction[\"UTURN\"] = 19] = \"UTURN\";\n})(NavUpdate_Segment_Instruction = exports.NavUpdate_Segment_Instruction || (exports.NavUpdate_Segment_Instruction = {}));\n\nvar NavUpdate_Segment =\n/** @class */\nfunction (_super) {\n __extends(NavUpdate_Segment, _super);\n\n function NavUpdate_Segment() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n NavUpdate_Segment.prototype.adoptFrom = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate_Segment.prototype.disownFrom = function () {\n return capnp_ts_1.Struct.disown(this.getFrom());\n };\n\n NavUpdate_Segment.prototype.getFrom = function () {\n return capnp_ts_1.Struct.getStruct(0, NavUpdate_LatLng, this);\n };\n\n NavUpdate_Segment.prototype.hasFrom = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate_Segment.prototype.initFrom = function () {\n return capnp_ts_1.Struct.initStructAt(0, NavUpdate_LatLng, this);\n };\n\n NavUpdate_Segment.prototype.setFrom = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate_Segment.prototype.adoptTo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n NavUpdate_Segment.prototype.disownTo = function () {\n return capnp_ts_1.Struct.disown(this.getTo());\n };\n\n NavUpdate_Segment.prototype.getTo = function () {\n return capnp_ts_1.Struct.getStruct(1, NavUpdate_LatLng, this);\n };\n\n NavUpdate_Segment.prototype.hasTo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n NavUpdate_Segment.prototype.initTo = function () {\n return capnp_ts_1.Struct.initStructAt(1, NavUpdate_LatLng, this);\n };\n\n NavUpdate_Segment.prototype.setTo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n NavUpdate_Segment.prototype.getUpdateTime = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n NavUpdate_Segment.prototype.setUpdateTime = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n NavUpdate_Segment.prototype.getDistance = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n NavUpdate_Segment.prototype.setDistance = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n NavUpdate_Segment.prototype.getCrossTime = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n NavUpdate_Segment.prototype.setCrossTime = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n NavUpdate_Segment.prototype.getExitNo = function () {\n return capnp_ts_1.Struct.getInt32(12, this);\n };\n\n NavUpdate_Segment.prototype.setExitNo = function (value) {\n capnp_ts_1.Struct.setInt32(12, value, this);\n };\n\n NavUpdate_Segment.prototype.getInstruction = function () {\n return capnp_ts_1.Struct.getUint16(16, this);\n };\n\n NavUpdate_Segment.prototype.setInstruction = function (value) {\n capnp_ts_1.Struct.setUint16(16, value, this);\n };\n\n NavUpdate_Segment.prototype.adoptParts = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n NavUpdate_Segment.prototype.disownParts = function () {\n return capnp_ts_1.Struct.disown(this.getParts());\n };\n\n NavUpdate_Segment.prototype.getParts = function () {\n return capnp_ts_1.Struct.getList(2, NavUpdate_Segment._Parts, this);\n };\n\n NavUpdate_Segment.prototype.hasParts = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n NavUpdate_Segment.prototype.initParts = function (length) {\n return capnp_ts_1.Struct.initList(2, NavUpdate_Segment._Parts, length, this);\n };\n\n NavUpdate_Segment.prototype.setParts = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n NavUpdate_Segment.prototype.toString = function () {\n return \"NavUpdate_Segment_\" + _super.prototype.toString.call(this);\n };\n\n NavUpdate_Segment.Instruction = NavUpdate_Segment_Instruction;\n NavUpdate_Segment._capnp = {\n displayName: \"Segment\",\n id: \"a5b39b4fc4d7da3f\",\n size: new capnp_ts_1.ObjectSize(24, 3)\n };\n return NavUpdate_Segment;\n}(capnp_ts_1.Struct);\n\nexports.NavUpdate_Segment = NavUpdate_Segment;\n\nvar NavUpdate =\n/** @class */\nfunction (_super) {\n __extends(NavUpdate, _super);\n\n function NavUpdate() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n NavUpdate.prototype.getIsNavigating = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n NavUpdate.prototype.setIsNavigating = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n NavUpdate.prototype.getCurSegment = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n NavUpdate.prototype.setCurSegment = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n NavUpdate.prototype.adoptSegments = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate.prototype.disownSegments = function () {\n return capnp_ts_1.Struct.disown(this.getSegments());\n };\n\n NavUpdate.prototype.getSegments = function () {\n return capnp_ts_1.Struct.getList(0, NavUpdate._Segments, this);\n };\n\n NavUpdate.prototype.hasSegments = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate.prototype.initSegments = function (length) {\n return capnp_ts_1.Struct.initList(0, NavUpdate._Segments, length, this);\n };\n\n NavUpdate.prototype.setSegments = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavUpdate.prototype.toString = function () {\n return \"NavUpdate_\" + _super.prototype.toString.call(this);\n };\n\n NavUpdate.LatLng = NavUpdate_LatLng;\n NavUpdate.Segment = NavUpdate_Segment;\n NavUpdate._capnp = {\n displayName: \"NavUpdate\",\n id: \"db98be6565516acb\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return NavUpdate;\n}(capnp_ts_1.Struct);\n\nexports.NavUpdate = NavUpdate;\n\nvar NavStatus_Address =\n/** @class */\nfunction (_super) {\n __extends(NavStatus_Address, _super);\n\n function NavStatus_Address() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n NavStatus_Address.prototype.getTitle = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n NavStatus_Address.prototype.setTitle = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n NavStatus_Address.prototype.getLat = function () {\n return capnp_ts_1.Struct.getFloat64(0, this);\n };\n\n NavStatus_Address.prototype.setLat = function (value) {\n capnp_ts_1.Struct.setFloat64(0, value, this);\n };\n\n NavStatus_Address.prototype.getLng = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n NavStatus_Address.prototype.setLng = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n NavStatus_Address.prototype.getHouse = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n NavStatus_Address.prototype.setHouse = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n NavStatus_Address.prototype.getAddress = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n NavStatus_Address.prototype.setAddress = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n NavStatus_Address.prototype.getStreet = function () {\n return capnp_ts_1.Struct.getText(3, this);\n };\n\n NavStatus_Address.prototype.setStreet = function (value) {\n capnp_ts_1.Struct.setText(3, value, this);\n };\n\n NavStatus_Address.prototype.getCity = function () {\n return capnp_ts_1.Struct.getText(4, this);\n };\n\n NavStatus_Address.prototype.setCity = function (value) {\n capnp_ts_1.Struct.setText(4, value, this);\n };\n\n NavStatus_Address.prototype.getState = function () {\n return capnp_ts_1.Struct.getText(5, this);\n };\n\n NavStatus_Address.prototype.setState = function (value) {\n capnp_ts_1.Struct.setText(5, value, this);\n };\n\n NavStatus_Address.prototype.getCountry = function () {\n return capnp_ts_1.Struct.getText(6, this);\n };\n\n NavStatus_Address.prototype.setCountry = function (value) {\n capnp_ts_1.Struct.setText(6, value, this);\n };\n\n NavStatus_Address.prototype.toString = function () {\n return \"NavStatus_Address_\" + _super.prototype.toString.call(this);\n };\n\n NavStatus_Address._capnp = {\n displayName: \"Address\",\n id: \"ce7cd672cacc7814\",\n size: new capnp_ts_1.ObjectSize(16, 7)\n };\n return NavStatus_Address;\n}(capnp_ts_1.Struct);\n\nexports.NavStatus_Address = NavStatus_Address;\n\nvar NavStatus =\n/** @class */\nfunction (_super) {\n __extends(NavStatus, _super);\n\n function NavStatus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n NavStatus.prototype.getIsNavigating = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n NavStatus.prototype.setIsNavigating = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n NavStatus.prototype.adoptCurrentAddress = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavStatus.prototype.disownCurrentAddress = function () {\n return capnp_ts_1.Struct.disown(this.getCurrentAddress());\n };\n\n NavStatus.prototype.getCurrentAddress = function () {\n return capnp_ts_1.Struct.getStruct(0, NavStatus_Address, this);\n };\n\n NavStatus.prototype.hasCurrentAddress = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavStatus.prototype.initCurrentAddress = function () {\n return capnp_ts_1.Struct.initStructAt(0, NavStatus_Address, this);\n };\n\n NavStatus.prototype.setCurrentAddress = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n NavStatus.prototype.toString = function () {\n return \"NavStatus_\" + _super.prototype.toString.call(this);\n };\n\n NavStatus.Address = NavStatus_Address;\n NavStatus._capnp = {\n displayName: \"NavStatus\",\n id: \"bd8822120928120c\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return NavStatus;\n}(capnp_ts_1.Struct);\n\nexports.NavStatus = NavStatus;\n\nvar CellInfo =\n/** @class */\nfunction (_super) {\n __extends(CellInfo, _super);\n\n function CellInfo() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CellInfo.prototype.getTimestamp = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n CellInfo.prototype.setTimestamp = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n CellInfo.prototype.getRepr = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n CellInfo.prototype.setRepr = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n CellInfo.prototype.toString = function () {\n return \"CellInfo_\" + _super.prototype.toString.call(this);\n };\n\n CellInfo._capnp = {\n displayName: \"CellInfo\",\n id: \"cff7566681c277ce\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return CellInfo;\n}(capnp_ts_1.Struct);\n\nexports.CellInfo = CellInfo;\nvar WifiScan_ChannelWidth;\n\n(function (WifiScan_ChannelWidth) {\n WifiScan_ChannelWidth[WifiScan_ChannelWidth[\"W20MHZ\"] = 0] = \"W20MHZ\";\n WifiScan_ChannelWidth[WifiScan_ChannelWidth[\"W40MHZ\"] = 1] = \"W40MHZ\";\n WifiScan_ChannelWidth[WifiScan_ChannelWidth[\"W80MHZ\"] = 2] = \"W80MHZ\";\n WifiScan_ChannelWidth[WifiScan_ChannelWidth[\"W160MHZ\"] = 3] = \"W160MHZ\";\n WifiScan_ChannelWidth[WifiScan_ChannelWidth[\"W80PLUS80MHZ\"] = 4] = \"W80PLUS80MHZ\";\n})(WifiScan_ChannelWidth = exports.WifiScan_ChannelWidth || (exports.WifiScan_ChannelWidth = {}));\n\nvar WifiScan =\n/** @class */\nfunction (_super) {\n __extends(WifiScan, _super);\n\n function WifiScan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n WifiScan.prototype.getBssid = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n WifiScan.prototype.setBssid = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n WifiScan.prototype.getSsid = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n WifiScan.prototype.setSsid = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n WifiScan.prototype.getCapabilities = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n WifiScan.prototype.setCapabilities = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n WifiScan.prototype.getFrequency = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n WifiScan.prototype.setFrequency = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n WifiScan.prototype.getLevel = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n WifiScan.prototype.setLevel = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n WifiScan.prototype.getTimestamp = function () {\n return capnp_ts_1.Struct.getInt64(8, this);\n };\n\n WifiScan.prototype.setTimestamp = function (value) {\n capnp_ts_1.Struct.setInt64(8, value, this);\n };\n\n WifiScan.prototype.getCenterFreq0 = function () {\n return capnp_ts_1.Struct.getInt32(16, this);\n };\n\n WifiScan.prototype.setCenterFreq0 = function (value) {\n capnp_ts_1.Struct.setInt32(16, value, this);\n };\n\n WifiScan.prototype.getCenterFreq1 = function () {\n return capnp_ts_1.Struct.getInt32(20, this);\n };\n\n WifiScan.prototype.setCenterFreq1 = function (value) {\n capnp_ts_1.Struct.setInt32(20, value, this);\n };\n\n WifiScan.prototype.getChannelWidth = function () {\n return capnp_ts_1.Struct.getUint16(24, this);\n };\n\n WifiScan.prototype.setChannelWidth = function (value) {\n capnp_ts_1.Struct.setUint16(24, value, this);\n };\n\n WifiScan.prototype.getOperatorFriendlyName = function () {\n return capnp_ts_1.Struct.getText(3, this);\n };\n\n WifiScan.prototype.setOperatorFriendlyName = function (value) {\n capnp_ts_1.Struct.setText(3, value, this);\n };\n\n WifiScan.prototype.getVenueName = function () {\n return capnp_ts_1.Struct.getText(4, this);\n };\n\n WifiScan.prototype.setVenueName = function (value) {\n capnp_ts_1.Struct.setText(4, value, this);\n };\n\n WifiScan.prototype.getIs80211mcResponder = function () {\n return capnp_ts_1.Struct.getBit(208, this);\n };\n\n WifiScan.prototype.setIs80211mcResponder = function (value) {\n capnp_ts_1.Struct.setBit(208, value, this);\n };\n\n WifiScan.prototype.getPasspoint = function () {\n return capnp_ts_1.Struct.getBit(209, this);\n };\n\n WifiScan.prototype.setPasspoint = function (value) {\n capnp_ts_1.Struct.setBit(209, value, this);\n };\n\n WifiScan.prototype.getDistanceCm = function () {\n return capnp_ts_1.Struct.getInt32(28, this);\n };\n\n WifiScan.prototype.setDistanceCm = function (value) {\n capnp_ts_1.Struct.setInt32(28, value, this);\n };\n\n WifiScan.prototype.getDistanceSdCm = function () {\n return capnp_ts_1.Struct.getInt32(32, this);\n };\n\n WifiScan.prototype.setDistanceSdCm = function (value) {\n capnp_ts_1.Struct.setInt32(32, value, this);\n };\n\n WifiScan.prototype.toString = function () {\n return \"WifiScan_\" + _super.prototype.toString.call(this);\n };\n\n WifiScan.ChannelWidth = WifiScan_ChannelWidth;\n WifiScan._capnp = {\n displayName: \"WifiScan\",\n id: \"d4df5a192382ba0b\",\n size: new capnp_ts_1.ObjectSize(40, 5)\n };\n return WifiScan;\n}(capnp_ts_1.Struct);\n\nexports.WifiScan = WifiScan;\n\nvar AndroidGnss_Measurements_Clock =\n/** @class */\nfunction (_super) {\n __extends(AndroidGnss_Measurements_Clock, _super);\n\n function AndroidGnss_Measurements_Clock() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidGnss_Measurements_Clock.prototype.getTimeNanos = function () {\n return capnp_ts_1.Struct.getInt64(0, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setTimeNanos = function (value) {\n capnp_ts_1.Struct.setInt64(0, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHardwareClockDiscontinuityCount = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHardwareClockDiscontinuityCount = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasTimeUncertaintyNanos = function () {\n return capnp_ts_1.Struct.getBit(96, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasTimeUncertaintyNanos = function (value) {\n capnp_ts_1.Struct.setBit(96, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getTimeUncertaintyNanos = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setTimeUncertaintyNanos = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasLeapSecond = function () {\n return capnp_ts_1.Struct.getBit(97, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasLeapSecond = function (value) {\n capnp_ts_1.Struct.setBit(97, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getLeapSecond = function () {\n return capnp_ts_1.Struct.getInt32(24, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setLeapSecond = function (value) {\n capnp_ts_1.Struct.setInt32(24, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasFullBiasNanos = function () {\n return capnp_ts_1.Struct.getBit(98, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasFullBiasNanos = function (value) {\n capnp_ts_1.Struct.setBit(98, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getFullBiasNanos = function () {\n return capnp_ts_1.Struct.getInt64(32, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setFullBiasNanos = function (value) {\n capnp_ts_1.Struct.setInt64(32, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasBiasNanos = function () {\n return capnp_ts_1.Struct.getBit(99, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasBiasNanos = function (value) {\n capnp_ts_1.Struct.setBit(99, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getBiasNanos = function () {\n return capnp_ts_1.Struct.getFloat64(40, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setBiasNanos = function (value) {\n capnp_ts_1.Struct.setFloat64(40, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasBiasUncertaintyNanos = function () {\n return capnp_ts_1.Struct.getBit(100, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasBiasUncertaintyNanos = function (value) {\n capnp_ts_1.Struct.setBit(100, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getBiasUncertaintyNanos = function () {\n return capnp_ts_1.Struct.getFloat64(48, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setBiasUncertaintyNanos = function (value) {\n capnp_ts_1.Struct.setFloat64(48, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasDriftNanosPerSecond = function () {\n return capnp_ts_1.Struct.getBit(101, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasDriftNanosPerSecond = function (value) {\n capnp_ts_1.Struct.setBit(101, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getDriftNanosPerSecond = function () {\n return capnp_ts_1.Struct.getFloat64(56, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setDriftNanosPerSecond = function (value) {\n capnp_ts_1.Struct.setFloat64(56, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getHasDriftUncertaintyNanosPerSecond = function () {\n return capnp_ts_1.Struct.getBit(102, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setHasDriftUncertaintyNanosPerSecond = function (value) {\n capnp_ts_1.Struct.setBit(102, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.getDriftUncertaintyNanosPerSecond = function () {\n return capnp_ts_1.Struct.getFloat64(64, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.setDriftUncertaintyNanosPerSecond = function (value) {\n capnp_ts_1.Struct.setFloat64(64, value, this);\n };\n\n AndroidGnss_Measurements_Clock.prototype.toString = function () {\n return \"AndroidGnss_Measurements_Clock_\" + _super.prototype.toString.call(this);\n };\n\n AndroidGnss_Measurements_Clock._capnp = {\n displayName: \"Clock\",\n id: \"a0e27b453a38f450\",\n size: new capnp_ts_1.ObjectSize(72, 0)\n };\n return AndroidGnss_Measurements_Clock;\n}(capnp_ts_1.Struct);\n\nexports.AndroidGnss_Measurements_Clock = AndroidGnss_Measurements_Clock;\nvar AndroidGnss_Measurements_Measurement_Constellation;\n\n(function (AndroidGnss_Measurements_Measurement_Constellation) {\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"GPS\"] = 1] = \"GPS\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"SBAS\"] = 2] = \"SBAS\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"GLONASS\"] = 3] = \"GLONASS\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"QZSS\"] = 4] = \"QZSS\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"BEIDOU\"] = 5] = \"BEIDOU\";\n AndroidGnss_Measurements_Measurement_Constellation[AndroidGnss_Measurements_Measurement_Constellation[\"GALILEO\"] = 6] = \"GALILEO\";\n})(AndroidGnss_Measurements_Measurement_Constellation = exports.AndroidGnss_Measurements_Measurement_Constellation || (exports.AndroidGnss_Measurements_Measurement_Constellation = {}));\n\nvar AndroidGnss_Measurements_Measurement_State;\n\n(function (AndroidGnss_Measurements_Measurement_State) {\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"CODE_LOCK\"] = 1] = \"CODE_LOCK\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"BIT_SYNC\"] = 2] = \"BIT_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"SUBFRAME_SYNC\"] = 3] = \"SUBFRAME_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"TOW_DECODED\"] = 4] = \"TOW_DECODED\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"MSEC_AMBIGUOUS\"] = 5] = \"MSEC_AMBIGUOUS\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"SYMBOL_SYNC\"] = 6] = \"SYMBOL_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"GLO_STRING_SYNC\"] = 7] = \"GLO_STRING_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"GLO_TOD_DECODED\"] = 8] = \"GLO_TOD_DECODED\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"BDS_D2BIT_SYNC\"] = 9] = \"BDS_D2BIT_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"BDS_D2SUBFRAME_SYNC\"] = 10] = \"BDS_D2SUBFRAME_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"GAL_E1BC_CODE_LOCK\"] = 11] = \"GAL_E1BC_CODE_LOCK\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"GAL_E1C2ND_CODE_LOCK\"] = 12] = \"GAL_E1C2ND_CODE_LOCK\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"GAL_E1B_PAGE_SYNC\"] = 13] = \"GAL_E1B_PAGE_SYNC\";\n AndroidGnss_Measurements_Measurement_State[AndroidGnss_Measurements_Measurement_State[\"SBAS_SYNC\"] = 14] = \"SBAS_SYNC\";\n})(AndroidGnss_Measurements_Measurement_State = exports.AndroidGnss_Measurements_Measurement_State || (exports.AndroidGnss_Measurements_Measurement_State = {}));\n\nvar AndroidGnss_Measurements_Measurement_MultipathIndicator;\n\n(function (AndroidGnss_Measurements_Measurement_MultipathIndicator) {\n AndroidGnss_Measurements_Measurement_MultipathIndicator[AndroidGnss_Measurements_Measurement_MultipathIndicator[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n AndroidGnss_Measurements_Measurement_MultipathIndicator[AndroidGnss_Measurements_Measurement_MultipathIndicator[\"DETECTED\"] = 1] = \"DETECTED\";\n AndroidGnss_Measurements_Measurement_MultipathIndicator[AndroidGnss_Measurements_Measurement_MultipathIndicator[\"NOT_DETECTED\"] = 2] = \"NOT_DETECTED\";\n})(AndroidGnss_Measurements_Measurement_MultipathIndicator = exports.AndroidGnss_Measurements_Measurement_MultipathIndicator || (exports.AndroidGnss_Measurements_Measurement_MultipathIndicator = {}));\n\nvar AndroidGnss_Measurements_Measurement =\n/** @class */\nfunction (_super) {\n __extends(AndroidGnss_Measurements_Measurement, _super);\n\n function AndroidGnss_Measurements_Measurement() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidGnss_Measurements_Measurement.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getConstellation = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setConstellation = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getTimeOffsetNanos = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setTimeOffsetNanos = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getState = function () {\n return capnp_ts_1.Struct.getInt32(16, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setState = function (value) {\n capnp_ts_1.Struct.setInt32(16, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getReceivedSvTimeNanos = function () {\n return capnp_ts_1.Struct.getInt64(24, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setReceivedSvTimeNanos = function (value) {\n capnp_ts_1.Struct.setInt64(24, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getReceivedSvTimeUncertaintyNanos = function () {\n return capnp_ts_1.Struct.getInt64(32, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setReceivedSvTimeUncertaintyNanos = function (value) {\n capnp_ts_1.Struct.setInt64(32, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getCn0DbHz = function () {\n return capnp_ts_1.Struct.getFloat64(40, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setCn0DbHz = function (value) {\n capnp_ts_1.Struct.setFloat64(40, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getPseudorangeRateMetersPerSecond = function () {\n return capnp_ts_1.Struct.getFloat64(48, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setPseudorangeRateMetersPerSecond = function (value) {\n capnp_ts_1.Struct.setFloat64(48, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getPseudorangeRateUncertaintyMetersPerSecond = function () {\n return capnp_ts_1.Struct.getFloat64(56, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setPseudorangeRateUncertaintyMetersPerSecond = function (value) {\n capnp_ts_1.Struct.setFloat64(56, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getAccumulatedDeltaRangeState = function () {\n return capnp_ts_1.Struct.getInt32(20, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setAccumulatedDeltaRangeState = function (value) {\n capnp_ts_1.Struct.setInt32(20, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getAccumulatedDeltaRangeMeters = function () {\n return capnp_ts_1.Struct.getFloat64(64, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setAccumulatedDeltaRangeMeters = function (value) {\n capnp_ts_1.Struct.setFloat64(64, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getAccumulatedDeltaRangeUncertaintyMeters = function () {\n return capnp_ts_1.Struct.getFloat64(72, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setAccumulatedDeltaRangeUncertaintyMeters = function (value) {\n capnp_ts_1.Struct.setFloat64(72, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getHasCarrierFrequencyHz = function () {\n return capnp_ts_1.Struct.getBit(48, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setHasCarrierFrequencyHz = function (value) {\n capnp_ts_1.Struct.setBit(48, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getCarrierFrequencyHz = function () {\n return capnp_ts_1.Struct.getFloat32(80, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setCarrierFrequencyHz = function (value) {\n capnp_ts_1.Struct.setFloat32(80, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getHasCarrierCycles = function () {\n return capnp_ts_1.Struct.getBit(49, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setHasCarrierCycles = function (value) {\n capnp_ts_1.Struct.setBit(49, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getCarrierCycles = function () {\n return capnp_ts_1.Struct.getInt64(88, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setCarrierCycles = function (value) {\n capnp_ts_1.Struct.setInt64(88, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getHasCarrierPhase = function () {\n return capnp_ts_1.Struct.getBit(50, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setHasCarrierPhase = function (value) {\n capnp_ts_1.Struct.setBit(50, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getCarrierPhase = function () {\n return capnp_ts_1.Struct.getFloat64(96, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setCarrierPhase = function (value) {\n capnp_ts_1.Struct.setFloat64(96, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getHasCarrierPhaseUncertainty = function () {\n return capnp_ts_1.Struct.getBit(51, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setHasCarrierPhaseUncertainty = function (value) {\n capnp_ts_1.Struct.setBit(51, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getCarrierPhaseUncertainty = function () {\n return capnp_ts_1.Struct.getFloat64(104, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setCarrierPhaseUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat64(104, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getHasSnrInDb = function () {\n return capnp_ts_1.Struct.getBit(52, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setHasSnrInDb = function (value) {\n capnp_ts_1.Struct.setBit(52, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getSnrInDb = function () {\n return capnp_ts_1.Struct.getFloat64(112, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setSnrInDb = function (value) {\n capnp_ts_1.Struct.setFloat64(112, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.getMultipathIndicator = function () {\n return capnp_ts_1.Struct.getUint16(84, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.setMultipathIndicator = function (value) {\n capnp_ts_1.Struct.setUint16(84, value, this);\n };\n\n AndroidGnss_Measurements_Measurement.prototype.toString = function () {\n return \"AndroidGnss_Measurements_Measurement_\" + _super.prototype.toString.call(this);\n };\n\n AndroidGnss_Measurements_Measurement.Constellation = AndroidGnss_Measurements_Measurement_Constellation;\n AndroidGnss_Measurements_Measurement.State = AndroidGnss_Measurements_Measurement_State;\n AndroidGnss_Measurements_Measurement.MultipathIndicator = AndroidGnss_Measurements_Measurement_MultipathIndicator;\n AndroidGnss_Measurements_Measurement._capnp = {\n displayName: \"Measurement\",\n id: \"d949bf717d77614d\",\n size: new capnp_ts_1.ObjectSize(120, 0)\n };\n return AndroidGnss_Measurements_Measurement;\n}(capnp_ts_1.Struct);\n\nexports.AndroidGnss_Measurements_Measurement = AndroidGnss_Measurements_Measurement;\n\nvar AndroidGnss_Measurements =\n/** @class */\nfunction (_super) {\n __extends(AndroidGnss_Measurements, _super);\n\n function AndroidGnss_Measurements() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidGnss_Measurements.prototype.adoptClock = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_Measurements.prototype.disownClock = function () {\n return capnp_ts_1.Struct.disown(this.getClock());\n };\n\n AndroidGnss_Measurements.prototype.getClock = function () {\n return capnp_ts_1.Struct.getStruct(0, AndroidGnss_Measurements_Clock, this);\n };\n\n AndroidGnss_Measurements.prototype.hasClock = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_Measurements.prototype.initClock = function () {\n return capnp_ts_1.Struct.initStructAt(0, AndroidGnss_Measurements_Clock, this);\n };\n\n AndroidGnss_Measurements.prototype.setClock = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_Measurements.prototype.adoptMeasurements = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n AndroidGnss_Measurements.prototype.disownMeasurements = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurements());\n };\n\n AndroidGnss_Measurements.prototype.getMeasurements = function () {\n return capnp_ts_1.Struct.getList(1, AndroidGnss_Measurements._Measurements, this);\n };\n\n AndroidGnss_Measurements.prototype.hasMeasurements = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n AndroidGnss_Measurements.prototype.initMeasurements = function (length) {\n return capnp_ts_1.Struct.initList(1, AndroidGnss_Measurements._Measurements, length, this);\n };\n\n AndroidGnss_Measurements.prototype.setMeasurements = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n AndroidGnss_Measurements.prototype.toString = function () {\n return \"AndroidGnss_Measurements_\" + _super.prototype.toString.call(this);\n };\n\n AndroidGnss_Measurements.Clock = AndroidGnss_Measurements_Clock;\n AndroidGnss_Measurements.Measurement = AndroidGnss_Measurements_Measurement;\n AndroidGnss_Measurements._capnp = {\n displayName: \"Measurements\",\n id: \"a20710d4f428d6cd\",\n size: new capnp_ts_1.ObjectSize(0, 2)\n };\n return AndroidGnss_Measurements;\n}(capnp_ts_1.Struct);\n\nexports.AndroidGnss_Measurements = AndroidGnss_Measurements;\nvar AndroidGnss_NavigationMessage_Status;\n\n(function (AndroidGnss_NavigationMessage_Status) {\n AndroidGnss_NavigationMessage_Status[AndroidGnss_NavigationMessage_Status[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n AndroidGnss_NavigationMessage_Status[AndroidGnss_NavigationMessage_Status[\"PARITY_PASSED\"] = 1] = \"PARITY_PASSED\";\n AndroidGnss_NavigationMessage_Status[AndroidGnss_NavigationMessage_Status[\"PARITY_REBUILT\"] = 2] = \"PARITY_REBUILT\";\n})(AndroidGnss_NavigationMessage_Status = exports.AndroidGnss_NavigationMessage_Status || (exports.AndroidGnss_NavigationMessage_Status = {}));\n\nvar AndroidGnss_NavigationMessage =\n/** @class */\nfunction (_super) {\n __extends(AndroidGnss_NavigationMessage, _super);\n\n function AndroidGnss_NavigationMessage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidGnss_NavigationMessage.prototype.getType = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setType = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getInt32(4, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setInt32(4, value, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.getMessageId = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setMessageId = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.getSubmessageId = function () {\n return capnp_ts_1.Struct.getInt32(12, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setSubmessageId = function (value) {\n capnp_ts_1.Struct.setInt32(12, value, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.adoptData = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_NavigationMessage.prototype.disownData = function () {\n return capnp_ts_1.Struct.disown(this.getData());\n };\n\n AndroidGnss_NavigationMessage.prototype.getData = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.hasData = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_NavigationMessage.prototype.initData = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setData = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss_NavigationMessage.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getUint16(16, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setUint16(16, value, this);\n };\n\n AndroidGnss_NavigationMessage.prototype.toString = function () {\n return \"AndroidGnss_NavigationMessage_\" + _super.prototype.toString.call(this);\n };\n\n AndroidGnss_NavigationMessage.Status = AndroidGnss_NavigationMessage_Status;\n AndroidGnss_NavigationMessage._capnp = {\n displayName: \"NavigationMessage\",\n id: \"e2517b083095fd4e\",\n size: new capnp_ts_1.ObjectSize(24, 1)\n };\n return AndroidGnss_NavigationMessage;\n}(capnp_ts_1.Struct);\n\nexports.AndroidGnss_NavigationMessage = AndroidGnss_NavigationMessage;\nvar AndroidGnss_Which;\n\n(function (AndroidGnss_Which) {\n AndroidGnss_Which[AndroidGnss_Which[\"MEASUREMENTS\"] = 0] = \"MEASUREMENTS\";\n AndroidGnss_Which[AndroidGnss_Which[\"NAVIGATION_MESSAGE\"] = 1] = \"NAVIGATION_MESSAGE\";\n})(AndroidGnss_Which = exports.AndroidGnss_Which || (exports.AndroidGnss_Which = {}));\n\nvar AndroidGnss =\n/** @class */\nfunction (_super) {\n __extends(AndroidGnss, _super);\n\n function AndroidGnss() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n AndroidGnss.prototype.adoptMeasurements = function (value) {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.disownMeasurements = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurements());\n };\n\n AndroidGnss.prototype.getMeasurements = function () {\n capnp_ts_1.Struct.testWhich(\"measurements\", capnp_ts_1.Struct.getUint16(0, this), 0, this);\n return capnp_ts_1.Struct.getStruct(0, AndroidGnss_Measurements, this);\n };\n\n AndroidGnss.prototype.hasMeasurements = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.initMeasurements = function () {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n return capnp_ts_1.Struct.initStructAt(0, AndroidGnss_Measurements, this);\n };\n\n AndroidGnss.prototype.isMeasurements = function () {\n return capnp_ts_1.Struct.getUint16(0, this) === 0;\n };\n\n AndroidGnss.prototype.setMeasurements = function (value) {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.adoptNavigationMessage = function (value) {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.disownNavigationMessage = function () {\n return capnp_ts_1.Struct.disown(this.getNavigationMessage());\n };\n\n AndroidGnss.prototype.getNavigationMessage = function () {\n capnp_ts_1.Struct.testWhich(\"navigationMessage\", capnp_ts_1.Struct.getUint16(0, this), 1, this);\n return capnp_ts_1.Struct.getStruct(0, AndroidGnss_NavigationMessage, this);\n };\n\n AndroidGnss.prototype.hasNavigationMessage = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.initNavigationMessage = function () {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n return capnp_ts_1.Struct.initStructAt(0, AndroidGnss_NavigationMessage, this);\n };\n\n AndroidGnss.prototype.isNavigationMessage = function () {\n return capnp_ts_1.Struct.getUint16(0, this) === 1;\n };\n\n AndroidGnss.prototype.setNavigationMessage = function (value) {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n AndroidGnss.prototype.toString = function () {\n return \"AndroidGnss_\" + _super.prototype.toString.call(this);\n };\n\n AndroidGnss.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n AndroidGnss.MEASUREMENTS = AndroidGnss_Which.MEASUREMENTS;\n AndroidGnss.NAVIGATION_MESSAGE = AndroidGnss_Which.NAVIGATION_MESSAGE;\n AndroidGnss.Measurements = AndroidGnss_Measurements;\n AndroidGnss.NavigationMessage = AndroidGnss_NavigationMessage;\n AndroidGnss._capnp = {\n displayName: \"AndroidGnss\",\n id: \"dfdf30d03fc485bd\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return AndroidGnss;\n}(capnp_ts_1.Struct);\n\nexports.AndroidGnss = AndroidGnss;\nvar QcomGnss_MeasurementSource;\n\n(function (QcomGnss_MeasurementSource) {\n QcomGnss_MeasurementSource[QcomGnss_MeasurementSource[\"GPS\"] = 0] = \"GPS\";\n QcomGnss_MeasurementSource[QcomGnss_MeasurementSource[\"GLONASS\"] = 1] = \"GLONASS\";\n QcomGnss_MeasurementSource[QcomGnss_MeasurementSource[\"BEIDOU\"] = 2] = \"BEIDOU\";\n})(QcomGnss_MeasurementSource = exports.QcomGnss_MeasurementSource || (exports.QcomGnss_MeasurementSource = {}));\n\nvar QcomGnss_SVObservationState;\n\n(function (QcomGnss_SVObservationState) {\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"IDLE\"] = 0] = \"IDLE\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"SEARCH\"] = 1] = \"SEARCH\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"SEARCH_VERIFY\"] = 2] = \"SEARCH_VERIFY\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"BIT_EDGE\"] = 3] = \"BIT_EDGE\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"TRACK_VERIFY\"] = 4] = \"TRACK_VERIFY\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"TRACK\"] = 5] = \"TRACK\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"RESTART\"] = 6] = \"RESTART\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"DPO\"] = 7] = \"DPO\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"GLO10MS_BE\"] = 8] = \"GLO10MS_BE\";\n QcomGnss_SVObservationState[QcomGnss_SVObservationState[\"GLO10MS_AT\"] = 9] = \"GLO10MS_AT\";\n})(QcomGnss_SVObservationState = exports.QcomGnss_SVObservationState || (exports.QcomGnss_SVObservationState = {}));\n\nvar QcomGnss_MeasurementStatus =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_MeasurementStatus, _super);\n\n function QcomGnss_MeasurementStatus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_MeasurementStatus.prototype.getSubMillisecondIsValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setSubMillisecondIsValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getSubBitTimeIsKnown = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setSubBitTimeIsKnown = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getSatelliteTimeIsKnown = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setSatelliteTimeIsKnown = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getBitEdgeConfirmedFromSignal = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setBitEdgeConfirmedFromSignal = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getMeasuredVelocity = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setMeasuredVelocity = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getFineOrCoarseVelocity = function () {\n return capnp_ts_1.Struct.getBit(5, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setFineOrCoarseVelocity = function (value) {\n capnp_ts_1.Struct.setBit(5, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getLockPointValid = function () {\n return capnp_ts_1.Struct.getBit(6, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setLockPointValid = function (value) {\n capnp_ts_1.Struct.setBit(6, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getLockPointPositive = function () {\n return capnp_ts_1.Struct.getBit(7, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setLockPointPositive = function (value) {\n capnp_ts_1.Struct.setBit(7, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getLastUpdateFromDifference = function () {\n return capnp_ts_1.Struct.getBit(8, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setLastUpdateFromDifference = function (value) {\n capnp_ts_1.Struct.setBit(8, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getLastUpdateFromVelocityDifference = function () {\n return capnp_ts_1.Struct.getBit(9, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setLastUpdateFromVelocityDifference = function (value) {\n capnp_ts_1.Struct.setBit(9, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getStrongIndicationOfCrossCorelation = function () {\n return capnp_ts_1.Struct.getBit(10, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setStrongIndicationOfCrossCorelation = function (value) {\n capnp_ts_1.Struct.setBit(10, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getTentativeMeasurement = function () {\n return capnp_ts_1.Struct.getBit(11, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setTentativeMeasurement = function (value) {\n capnp_ts_1.Struct.setBit(11, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getMeasurementNotUsable = function () {\n return capnp_ts_1.Struct.getBit(12, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setMeasurementNotUsable = function (value) {\n capnp_ts_1.Struct.setBit(12, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getSirCheckIsNeeded = function () {\n return capnp_ts_1.Struct.getBit(13, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setSirCheckIsNeeded = function (value) {\n capnp_ts_1.Struct.setBit(13, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getProbationMode = function () {\n return capnp_ts_1.Struct.getBit(14, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setProbationMode = function (value) {\n capnp_ts_1.Struct.setBit(14, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGlonassMeanderBitEdgeValid = function () {\n return capnp_ts_1.Struct.getBit(15, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGlonassMeanderBitEdgeValid = function (value) {\n capnp_ts_1.Struct.setBit(15, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGlonassTimeMarkValid = function () {\n return capnp_ts_1.Struct.getBit(16, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGlonassTimeMarkValid = function (value) {\n capnp_ts_1.Struct.setBit(16, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsRoundRobinRxDiversity = function () {\n return capnp_ts_1.Struct.getBit(17, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsRoundRobinRxDiversity = function (value) {\n capnp_ts_1.Struct.setBit(17, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsRxDiversity = function () {\n return capnp_ts_1.Struct.getBit(18, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsRxDiversity = function (value) {\n capnp_ts_1.Struct.setBit(18, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsLowBandwidthRxDiversityCombined = function () {\n return capnp_ts_1.Struct.getBit(19, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsLowBandwidthRxDiversityCombined = function (value) {\n capnp_ts_1.Struct.setBit(19, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsHighBandwidthNu4 = function () {\n return capnp_ts_1.Struct.getBit(20, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsHighBandwidthNu4 = function (value) {\n capnp_ts_1.Struct.setBit(20, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsHighBandwidthNu8 = function () {\n return capnp_ts_1.Struct.getBit(21, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsHighBandwidthNu8 = function (value) {\n capnp_ts_1.Struct.setBit(21, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getGpsHighBandwidthUniform = function () {\n return capnp_ts_1.Struct.getBit(22, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setGpsHighBandwidthUniform = function (value) {\n capnp_ts_1.Struct.setBit(22, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getMultipathIndicator = function () {\n return capnp_ts_1.Struct.getBit(23, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setMultipathIndicator = function (value) {\n capnp_ts_1.Struct.setBit(23, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getImdJammingIndicator = function () {\n return capnp_ts_1.Struct.getBit(24, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setImdJammingIndicator = function (value) {\n capnp_ts_1.Struct.setBit(24, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getLteB13TxJammingIndicator = function () {\n return capnp_ts_1.Struct.getBit(25, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setLteB13TxJammingIndicator = function (value) {\n capnp_ts_1.Struct.setBit(25, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getFreshMeasurementIndicator = function () {\n return capnp_ts_1.Struct.getBit(26, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setFreshMeasurementIndicator = function (value) {\n capnp_ts_1.Struct.setBit(26, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getMultipathEstimateIsValid = function () {\n return capnp_ts_1.Struct.getBit(27, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setMultipathEstimateIsValid = function (value) {\n capnp_ts_1.Struct.setBit(27, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.getDirectionIsValid = function () {\n return capnp_ts_1.Struct.getBit(28, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.setDirectionIsValid = function (value) {\n capnp_ts_1.Struct.setBit(28, value, this);\n };\n\n QcomGnss_MeasurementStatus.prototype.toString = function () {\n return \"QcomGnss_MeasurementStatus_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_MeasurementStatus._capnp = {\n displayName: \"MeasurementStatus\",\n id: \"e501010e1bcae83b\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return QcomGnss_MeasurementStatus;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_MeasurementStatus = QcomGnss_MeasurementStatus;\n\nvar QcomGnss_MeasurementReport_SV =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_MeasurementReport_SV, _super);\n\n function QcomGnss_MeasurementReport_SV() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_MeasurementReport_SV.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getObservationState = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setObservationState = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getObservations = function () {\n return capnp_ts_1.Struct.getUint8(4, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setObservations = function (value) {\n capnp_ts_1.Struct.setUint8(4, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getGoodObservations = function () {\n return capnp_ts_1.Struct.getUint8(5, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setGoodObservations = function (value) {\n capnp_ts_1.Struct.setUint8(5, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getGpsParityErrorCount = function () {\n return capnp_ts_1.Struct.getUint16(6, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setGpsParityErrorCount = function (value) {\n capnp_ts_1.Struct.setUint16(6, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getGlonassFrequencyIndex = function () {\n return capnp_ts_1.Struct.getInt8(1, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setGlonassFrequencyIndex = function (value) {\n capnp_ts_1.Struct.setInt8(1, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getGlonassHemmingErrorCount = function () {\n return capnp_ts_1.Struct.getUint8(8, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setGlonassHemmingErrorCount = function (value) {\n capnp_ts_1.Struct.setUint8(8, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getFilterStages = function () {\n return capnp_ts_1.Struct.getUint8(9, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setFilterStages = function (value) {\n capnp_ts_1.Struct.setUint8(9, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getCarrierNoise = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setCarrierNoise = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getLatency = function () {\n return capnp_ts_1.Struct.getInt16(12, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setLatency = function (value) {\n capnp_ts_1.Struct.setInt16(12, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getPredetectInterval = function () {\n return capnp_ts_1.Struct.getUint8(14, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setPredetectInterval = function (value) {\n capnp_ts_1.Struct.setUint8(14, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getPostdetections = function () {\n return capnp_ts_1.Struct.getUint16(16, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setPostdetections = function (value) {\n capnp_ts_1.Struct.setUint16(16, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getUnfilteredMeasurementIntegral = function () {\n return capnp_ts_1.Struct.getUint32(20, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setUnfilteredMeasurementIntegral = function (value) {\n capnp_ts_1.Struct.setUint32(20, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getUnfilteredMeasurementFraction = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setUnfilteredMeasurementFraction = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getUnfilteredTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setUnfilteredTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getUnfilteredSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setUnfilteredSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getUnfilteredSpeedUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setUnfilteredSpeedUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.adoptMeasurementStatus = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport_SV.prototype.disownMeasurementStatus = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurementStatus());\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getMeasurementStatus = function () {\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_MeasurementStatus, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.hasMeasurementStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport_SV.prototype.initMeasurementStatus = function () {\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_MeasurementStatus, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setMeasurementStatus = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getMultipathEstimate = function () {\n return capnp_ts_1.Struct.getUint32(40, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setMultipathEstimate = function (value) {\n capnp_ts_1.Struct.setUint32(40, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getAzimuth = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setAzimuth = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getElevation = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setElevation = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getCarrierPhaseCyclesIntegral = function () {\n return capnp_ts_1.Struct.getInt32(52, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setCarrierPhaseCyclesIntegral = function (value) {\n capnp_ts_1.Struct.setInt32(52, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getCarrierPhaseCyclesFraction = function () {\n return capnp_ts_1.Struct.getUint16(18, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setCarrierPhaseCyclesFraction = function (value) {\n capnp_ts_1.Struct.setUint16(18, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getFineSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setFineSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getFineSpeedUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setFineSpeedUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.getCycleSlipCount = function () {\n return capnp_ts_1.Struct.getUint8(15, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.setCycleSlipCount = function (value) {\n capnp_ts_1.Struct.setUint8(15, value, this);\n };\n\n QcomGnss_MeasurementReport_SV.prototype.toString = function () {\n return \"QcomGnss_MeasurementReport_SV_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_MeasurementReport_SV._capnp = {\n displayName: \"SV\",\n id: \"f10c595ae7bb2c27\",\n size: new capnp_ts_1.ObjectSize(64, 1)\n };\n return QcomGnss_MeasurementReport_SV;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_MeasurementReport_SV = QcomGnss_MeasurementReport_SV;\n\nvar QcomGnss_MeasurementReport =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_MeasurementReport, _super);\n\n function QcomGnss_MeasurementReport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_MeasurementReport.prototype.getSource = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setSource = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getFCount = function () {\n return capnp_ts_1.Struct.getUint32(4, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setFCount = function (value) {\n capnp_ts_1.Struct.setUint32(4, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getGlonassCycleNumber = function () {\n return capnp_ts_1.Struct.getUint8(8, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setGlonassCycleNumber = function (value) {\n capnp_ts_1.Struct.setUint8(8, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getGlonassNumberOfDays = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setGlonassNumberOfDays = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(12, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(12, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getClockFrequencyBias = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setClockFrequencyBias = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.getClockFrequencyUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setClockFrequencyUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_MeasurementReport.prototype.adoptSv = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport.prototype.disownSv = function () {\n return capnp_ts_1.Struct.disown(this.getSv());\n };\n\n QcomGnss_MeasurementReport.prototype.getSv = function () {\n return capnp_ts_1.Struct.getList(0, QcomGnss_MeasurementReport._Sv, this);\n };\n\n QcomGnss_MeasurementReport.prototype.hasSv = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport.prototype.initSv = function (length) {\n return capnp_ts_1.Struct.initList(0, QcomGnss_MeasurementReport._Sv, length, this);\n };\n\n QcomGnss_MeasurementReport.prototype.setSv = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_MeasurementReport.prototype.toString = function () {\n return \"QcomGnss_MeasurementReport_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_MeasurementReport.SV = QcomGnss_MeasurementReport_SV;\n QcomGnss_MeasurementReport._capnp = {\n displayName: \"MeasurementReport\",\n id: \"f580d7d86b7b8692\",\n size: new capnp_ts_1.ObjectSize(32, 1)\n };\n return QcomGnss_MeasurementReport;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_MeasurementReport = QcomGnss_MeasurementReport;\n\nvar QcomGnss_ClockReport =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_ClockReport, _super);\n\n function QcomGnss_ClockReport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_ClockReport.prototype.getHasFCount = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasFCount = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getFCount = function () {\n return capnp_ts_1.Struct.getUint32(4, this);\n };\n\n QcomGnss_ClockReport.prototype.setFCount = function (value) {\n capnp_ts_1.Struct.setUint32(4, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasGpsWeek = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasGpsWeek = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasGpsMilliseconds = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasGpsMilliseconds = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsClockSource = function () {\n return capnp_ts_1.Struct.getUint8(1, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(1, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasGlonassYear = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasGlonassYear = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassYear = function () {\n return capnp_ts_1.Struct.getUint8(20, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassYear = function (value) {\n capnp_ts_1.Struct.setUint8(20, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasGlonassDay = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasGlonassDay = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassDay = function () {\n return capnp_ts_1.Struct.getUint16(22, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassDay = function (value) {\n capnp_ts_1.Struct.setUint16(22, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasGlonassMilliseconds = function () {\n return capnp_ts_1.Struct.getBit(5, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasGlonassMilliseconds = function (value) {\n capnp_ts_1.Struct.setBit(5, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(24, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(24, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGlonassClockSource = function () {\n return capnp_ts_1.Struct.getUint8(21, this);\n };\n\n QcomGnss_ClockReport.prototype.setGlonassClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(21, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsWeek = function () {\n return capnp_ts_1.Struct.getUint16(36, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsWeek = function (value) {\n capnp_ts_1.Struct.setUint16(36, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(40, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(40, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsClockSource = function () {\n return capnp_ts_1.Struct.getUint8(38, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(38, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalWeek = function () {\n return capnp_ts_1.Struct.getUint16(52, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalWeek = function (value) {\n capnp_ts_1.Struct.setUint16(52, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(56, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(56, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(64, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(64, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalClockSource = function () {\n return capnp_ts_1.Struct.getUint8(39, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(39, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getClockFrequencyBias = function () {\n return capnp_ts_1.Struct.getFloat32(68, this);\n };\n\n QcomGnss_ClockReport.prototype.setClockFrequencyBias = function (value) {\n capnp_ts_1.Struct.setFloat32(68, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getClockFrequencyUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(72, this);\n };\n\n QcomGnss_ClockReport.prototype.setClockFrequencyUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(72, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getFrequencySource = function () {\n return capnp_ts_1.Struct.getUint8(54, this);\n };\n\n QcomGnss_ClockReport.prototype.setFrequencySource = function (value) {\n capnp_ts_1.Struct.setUint8(54, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsLeapSeconds = function () {\n return capnp_ts_1.Struct.getUint8(55, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsLeapSeconds = function (value) {\n capnp_ts_1.Struct.setUint8(55, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsLeapSecondsUncertainty = function () {\n return capnp_ts_1.Struct.getUint8(76, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsLeapSecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setUint8(76, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsLeapSecondsSource = function () {\n return capnp_ts_1.Struct.getUint8(77, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsLeapSecondsSource = function (value) {\n capnp_ts_1.Struct.setUint8(77, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToGlonassTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(80, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToGlonassTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(80, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToGlonassTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(84, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToGlonassTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(84, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToBdsTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(88, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToBdsTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(88, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToBdsTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(92, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToBdsTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(92, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsToGloTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(96, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsToGloTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(96, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getBdsToGloTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(100, this);\n };\n\n QcomGnss_ClockReport.prototype.setBdsToGloTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(100, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToGalTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(104, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToGalTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(104, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGpsToGalTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(108, this);\n };\n\n QcomGnss_ClockReport.prototype.setGpsToGalTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(108, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalToGloTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(112, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalToGloTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(112, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalToGloTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(116, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalToGloTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(116, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalToBdsTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(120, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalToBdsTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(120, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getGalToBdsTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(124, this);\n };\n\n QcomGnss_ClockReport.prototype.setGalToBdsTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(124, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getHasRtcTime = function () {\n return capnp_ts_1.Struct.getBit(6, this);\n };\n\n QcomGnss_ClockReport.prototype.setHasRtcTime = function (value) {\n capnp_ts_1.Struct.setBit(6, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getSystemRtcTime = function () {\n return capnp_ts_1.Struct.getUint32(128, this);\n };\n\n QcomGnss_ClockReport.prototype.setSystemRtcTime = function (value) {\n capnp_ts_1.Struct.setUint32(128, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getFCountOffset = function () {\n return capnp_ts_1.Struct.getUint32(132, this);\n };\n\n QcomGnss_ClockReport.prototype.setFCountOffset = function (value) {\n capnp_ts_1.Struct.setUint32(132, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getLpmRtcCount = function () {\n return capnp_ts_1.Struct.getUint32(136, this);\n };\n\n QcomGnss_ClockReport.prototype.setLpmRtcCount = function (value) {\n capnp_ts_1.Struct.setUint32(136, value, this);\n };\n\n QcomGnss_ClockReport.prototype.getClockResets = function () {\n return capnp_ts_1.Struct.getUint32(140, this);\n };\n\n QcomGnss_ClockReport.prototype.setClockResets = function (value) {\n capnp_ts_1.Struct.setUint32(140, value, this);\n };\n\n QcomGnss_ClockReport.prototype.toString = function () {\n return \"QcomGnss_ClockReport_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_ClockReport._capnp = {\n displayName: \"ClockReport\",\n id: \"ca965e4add8f4f0b\",\n size: new capnp_ts_1.ObjectSize(144, 0)\n };\n return QcomGnss_ClockReport;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_ClockReport = QcomGnss_ClockReport;\n\nvar QcomGnss_DrMeasurementReport_SV =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_DrMeasurementReport_SV, _super);\n\n function QcomGnss_DrMeasurementReport_SV() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_DrMeasurementReport_SV.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getGlonassFrequencyIndex = function () {\n return capnp_ts_1.Struct.getInt8(1, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setGlonassFrequencyIndex = function (value) {\n capnp_ts_1.Struct.setInt8(1, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getObservationState = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setObservationState = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getObservations = function () {\n return capnp_ts_1.Struct.getUint8(4, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setObservations = function (value) {\n capnp_ts_1.Struct.setUint8(4, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getGoodObservations = function () {\n return capnp_ts_1.Struct.getUint8(5, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setGoodObservations = function (value) {\n capnp_ts_1.Struct.setUint8(5, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilterStages = function () {\n return capnp_ts_1.Struct.getUint8(6, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilterStages = function (value) {\n capnp_ts_1.Struct.setUint8(6, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getPredetectInterval = function () {\n return capnp_ts_1.Struct.getUint8(7, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setPredetectInterval = function (value) {\n capnp_ts_1.Struct.setUint8(7, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getCycleSlipCount = function () {\n return capnp_ts_1.Struct.getUint8(8, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setCycleSlipCount = function (value) {\n capnp_ts_1.Struct.setUint8(8, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getPostdetections = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setPostdetections = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.adoptMeasurementStatus = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.disownMeasurementStatus = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurementStatus());\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getMeasurementStatus = function () {\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_MeasurementStatus, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.hasMeasurementStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.initMeasurementStatus = function () {\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_MeasurementStatus, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setMeasurementStatus = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getCarrierNoise = function () {\n return capnp_ts_1.Struct.getUint16(12, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setCarrierNoise = function (value) {\n capnp_ts_1.Struct.setUint16(12, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getRfLoss = function () {\n return capnp_ts_1.Struct.getUint16(14, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setRfLoss = function (value) {\n capnp_ts_1.Struct.setUint16(14, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getLatency = function () {\n return capnp_ts_1.Struct.getInt16(16, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setLatency = function (value) {\n capnp_ts_1.Struct.setInt16(16, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilteredMeasurementFraction = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilteredMeasurementFraction = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilteredMeasurementIntegral = function () {\n return capnp_ts_1.Struct.getUint32(24, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilteredMeasurementIntegral = function (value) {\n capnp_ts_1.Struct.setUint32(24, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilteredTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilteredTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilteredSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilteredSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFilteredSpeedUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFilteredSpeedUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getUnfilteredMeasurementFraction = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setUnfilteredMeasurementFraction = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getUnfilteredMeasurementIntegral = function () {\n return capnp_ts_1.Struct.getUint32(44, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setUnfilteredMeasurementIntegral = function (value) {\n capnp_ts_1.Struct.setUint32(44, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getUnfilteredTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setUnfilteredTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getUnfilteredSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setUnfilteredSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getUnfilteredSpeedUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setUnfilteredSpeedUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getMultipathEstimate = function () {\n return capnp_ts_1.Struct.getUint32(60, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setMultipathEstimate = function (value) {\n capnp_ts_1.Struct.setUint32(60, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getAzimuth = function () {\n return capnp_ts_1.Struct.getFloat32(64, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setAzimuth = function (value) {\n capnp_ts_1.Struct.setFloat32(64, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getElevation = function () {\n return capnp_ts_1.Struct.getFloat32(68, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setElevation = function (value) {\n capnp_ts_1.Struct.setFloat32(68, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getDopplerAcceleration = function () {\n return capnp_ts_1.Struct.getFloat32(72, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setDopplerAcceleration = function (value) {\n capnp_ts_1.Struct.setFloat32(72, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFineSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(76, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFineSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(76, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFineSpeedUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(80, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFineSpeedUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(80, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getCarrierPhase = function () {\n return capnp_ts_1.Struct.getFloat64(88, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setCarrierPhase = function (value) {\n capnp_ts_1.Struct.setFloat64(88, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getFCount = function () {\n return capnp_ts_1.Struct.getUint32(84, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setFCount = function (value) {\n capnp_ts_1.Struct.setUint32(84, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getParityErrorCount = function () {\n return capnp_ts_1.Struct.getUint16(18, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setParityErrorCount = function (value) {\n capnp_ts_1.Struct.setUint16(18, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.getGoodParity = function () {\n return capnp_ts_1.Struct.getBit(72, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.setGoodParity = function (value) {\n capnp_ts_1.Struct.setBit(72, value, this);\n };\n\n QcomGnss_DrMeasurementReport_SV.prototype.toString = function () {\n return \"QcomGnss_DrMeasurementReport_SV_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_DrMeasurementReport_SV._capnp = {\n displayName: \"SV\",\n id: \"f08b81df8cbf459c\",\n size: new capnp_ts_1.ObjectSize(96, 1)\n };\n return QcomGnss_DrMeasurementReport_SV;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_DrMeasurementReport_SV = QcomGnss_DrMeasurementReport_SV;\n\nvar QcomGnss_DrMeasurementReport =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_DrMeasurementReport, _super);\n\n function QcomGnss_DrMeasurementReport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_DrMeasurementReport.prototype.getReason = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setReason = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSeqNum = function () {\n return capnp_ts_1.Struct.getUint8(1, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSeqNum = function (value) {\n capnp_ts_1.Struct.setUint8(1, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSeqMax = function () {\n return capnp_ts_1.Struct.getUint8(2, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSeqMax = function (value) {\n capnp_ts_1.Struct.setUint8(2, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getRfLoss = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setRfLoss = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSystemRtcValid = function () {\n return capnp_ts_1.Struct.getBit(24, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSystemRtcValid = function (value) {\n capnp_ts_1.Struct.setBit(24, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getFCount = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setFCount = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getClockResets = function () {\n return capnp_ts_1.Struct.getUint32(12, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setClockResets = function (value) {\n capnp_ts_1.Struct.setUint32(12, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSystemRtcTime = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSystemRtcTime = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsLeapSeconds = function () {\n return capnp_ts_1.Struct.getUint8(6, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsLeapSeconds = function (value) {\n capnp_ts_1.Struct.setUint8(6, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsLeapSecondsUncertainty = function () {\n return capnp_ts_1.Struct.getUint8(7, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsLeapSecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setUint8(7, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsToGlonassTimeBiasMilliseconds = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsToGlonassTimeBiasMilliseconds = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsToGlonassTimeBiasMillisecondsUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsToGlonassTimeBiasMillisecondsUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getUint16(32, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setUint16(32, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(36, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(36, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsTimeBiasMs = function () {\n return capnp_ts_1.Struct.getUint32(40, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsTimeBiasMs = function (value) {\n capnp_ts_1.Struct.setUint32(40, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsClockTimeUncertaintyMs = function () {\n return capnp_ts_1.Struct.getUint32(44, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsClockTimeUncertaintyMs = function (value) {\n capnp_ts_1.Struct.setUint32(44, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGpsClockSource = function () {\n return capnp_ts_1.Struct.getUint8(34, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGpsClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(34, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassClockSource = function () {\n return capnp_ts_1.Struct.getUint8(35, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassClockSource = function (value) {\n capnp_ts_1.Struct.setUint8(35, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassYear = function () {\n return capnp_ts_1.Struct.getUint8(48, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassYear = function (value) {\n capnp_ts_1.Struct.setUint8(48, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassDay = function () {\n return capnp_ts_1.Struct.getUint16(50, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassDay = function (value) {\n capnp_ts_1.Struct.setUint16(50, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassMilliseconds = function () {\n return capnp_ts_1.Struct.getUint32(52, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassMilliseconds = function (value) {\n capnp_ts_1.Struct.setUint32(52, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassTimeBias = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassTimeBias = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getGlonassClockTimeUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(60, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setGlonassClockTimeUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(60, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getClockFrequencyBias = function () {\n return capnp_ts_1.Struct.getFloat32(64, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setClockFrequencyBias = function (value) {\n capnp_ts_1.Struct.setFloat32(64, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getClockFrequencyUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(68, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setClockFrequencyUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(68, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getFrequencySource = function () {\n return capnp_ts_1.Struct.getUint8(49, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setFrequencySource = function (value) {\n capnp_ts_1.Struct.setUint8(49, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSource = function () {\n return capnp_ts_1.Struct.getUint16(72, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSource = function (value) {\n capnp_ts_1.Struct.setUint16(72, value, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.adoptSv = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport.prototype.disownSv = function () {\n return capnp_ts_1.Struct.disown(this.getSv());\n };\n\n QcomGnss_DrMeasurementReport.prototype.getSv = function () {\n return capnp_ts_1.Struct.getList(0, QcomGnss_DrMeasurementReport._Sv, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.hasSv = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport.prototype.initSv = function (length) {\n return capnp_ts_1.Struct.initList(0, QcomGnss_DrMeasurementReport._Sv, length, this);\n };\n\n QcomGnss_DrMeasurementReport.prototype.setSv = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrMeasurementReport.prototype.toString = function () {\n return \"QcomGnss_DrMeasurementReport_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_DrMeasurementReport.SV = QcomGnss_DrMeasurementReport_SV;\n QcomGnss_DrMeasurementReport._capnp = {\n displayName: \"DrMeasurementReport\",\n id: \"8053c39445c6c75c\",\n size: new capnp_ts_1.ObjectSize(80, 1)\n };\n return QcomGnss_DrMeasurementReport;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_DrMeasurementReport = QcomGnss_DrMeasurementReport;\n\nvar QcomGnss_DrSvPolyReport =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss_DrSvPolyReport, _super);\n\n function QcomGnss_DrSvPolyReport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss_DrSvPolyReport.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getFrequencyIndex = function () {\n return capnp_ts_1.Struct.getInt8(2, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setFrequencyIndex = function (value) {\n capnp_ts_1.Struct.setInt8(2, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getHasPosition = function () {\n return capnp_ts_1.Struct.getBit(24, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setHasPosition = function (value) {\n capnp_ts_1.Struct.setBit(24, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getHasIono = function () {\n return capnp_ts_1.Struct.getBit(25, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setHasIono = function (value) {\n capnp_ts_1.Struct.setBit(25, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getHasTropo = function () {\n return capnp_ts_1.Struct.getBit(26, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setHasTropo = function (value) {\n capnp_ts_1.Struct.setBit(26, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getHasElevation = function () {\n return capnp_ts_1.Struct.getBit(27, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setHasElevation = function (value) {\n capnp_ts_1.Struct.setBit(27, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getPolyFromXtra = function () {\n return capnp_ts_1.Struct.getBit(28, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setPolyFromXtra = function (value) {\n capnp_ts_1.Struct.setBit(28, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getHasSbasIono = function () {\n return capnp_ts_1.Struct.getBit(29, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setHasSbasIono = function (value) {\n capnp_ts_1.Struct.setBit(29, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getIode = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setIode = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getT0 = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setT0 = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.adoptXyz0 = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.disownXyz0 = function () {\n return capnp_ts_1.Struct.disown(this.getXyz0());\n };\n\n QcomGnss_DrSvPolyReport.prototype.getXyz0 = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float64List, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.hasXyz0 = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.initXyz0 = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float64List, length, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setXyz0 = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.adoptXyzN = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.disownXyzN = function () {\n return capnp_ts_1.Struct.disown(this.getXyzN());\n };\n\n QcomGnss_DrSvPolyReport.prototype.getXyzN = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float64List, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.hasXyzN = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.initXyzN = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float64List, length, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setXyzN = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.adoptOther = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.disownOther = function () {\n return capnp_ts_1.Struct.disown(this.getOther());\n };\n\n QcomGnss_DrSvPolyReport.prototype.getOther = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.hasOther = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.initOther = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setOther = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.getPositionUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setPositionUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getIonoDelay = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setIonoDelay = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getIonoDot = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setIonoDot = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getSbasIonoDelay = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setSbasIonoDelay = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getSbasIonoDot = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setSbasIonoDot = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getTropoDelay = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setTropoDelay = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getElevation = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setElevation = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getElevationDot = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setElevationDot = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.getElevationUncertainty = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setElevationUncertainty = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.adoptVelocityCoeff = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.disownVelocityCoeff = function () {\n return capnp_ts_1.Struct.disown(this.getVelocityCoeff());\n };\n\n QcomGnss_DrSvPolyReport.prototype.getVelocityCoeff = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float64List, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.hasVelocityCoeff = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.initVelocityCoeff = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float64List, length, this);\n };\n\n QcomGnss_DrSvPolyReport.prototype.setVelocityCoeff = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n QcomGnss_DrSvPolyReport.prototype.toString = function () {\n return \"QcomGnss_DrSvPolyReport_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss_DrSvPolyReport._capnp = {\n displayName: \"DrSvPolyReport\",\n id: \"b1fb80811a673270\",\n size: new capnp_ts_1.ObjectSize(56, 4)\n };\n return QcomGnss_DrSvPolyReport;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss_DrSvPolyReport = QcomGnss_DrSvPolyReport;\nvar QcomGnss_Which;\n\n(function (QcomGnss_Which) {\n QcomGnss_Which[QcomGnss_Which[\"MEASUREMENT_REPORT\"] = 0] = \"MEASUREMENT_REPORT\";\n QcomGnss_Which[QcomGnss_Which[\"CLOCK_REPORT\"] = 1] = \"CLOCK_REPORT\";\n QcomGnss_Which[QcomGnss_Which[\"DR_MEASUREMENT_REPORT\"] = 2] = \"DR_MEASUREMENT_REPORT\";\n QcomGnss_Which[QcomGnss_Which[\"DR_SV_POLY\"] = 3] = \"DR_SV_POLY\";\n QcomGnss_Which[QcomGnss_Which[\"RAW_LOG\"] = 4] = \"RAW_LOG\";\n})(QcomGnss_Which = exports.QcomGnss_Which || (exports.QcomGnss_Which = {}));\n\nvar QcomGnss =\n/** @class */\nfunction (_super) {\n __extends(QcomGnss, _super);\n\n function QcomGnss() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n QcomGnss.prototype.getLogTs = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n QcomGnss.prototype.setLogTs = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n QcomGnss.prototype.adoptMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.disownMeasurementReport = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurementReport());\n };\n\n QcomGnss.prototype.getMeasurementReport = function () {\n capnp_ts_1.Struct.testWhich(\"measurementReport\", capnp_ts_1.Struct.getUint16(8, this), 0, this);\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_MeasurementReport, this);\n };\n\n QcomGnss.prototype.hasMeasurementReport = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.initMeasurementReport = function () {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_MeasurementReport, this);\n };\n\n QcomGnss.prototype.isMeasurementReport = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 0;\n };\n\n QcomGnss.prototype.setMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.adoptClockReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.disownClockReport = function () {\n return capnp_ts_1.Struct.disown(this.getClockReport());\n };\n\n QcomGnss.prototype.getClockReport = function () {\n capnp_ts_1.Struct.testWhich(\"clockReport\", capnp_ts_1.Struct.getUint16(8, this), 1, this);\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_ClockReport, this);\n };\n\n QcomGnss.prototype.hasClockReport = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.initClockReport = function () {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_ClockReport, this);\n };\n\n QcomGnss.prototype.isClockReport = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 1;\n };\n\n QcomGnss.prototype.setClockReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.adoptDrMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.disownDrMeasurementReport = function () {\n return capnp_ts_1.Struct.disown(this.getDrMeasurementReport());\n };\n\n QcomGnss.prototype.getDrMeasurementReport = function () {\n capnp_ts_1.Struct.testWhich(\"drMeasurementReport\", capnp_ts_1.Struct.getUint16(8, this), 2, this);\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_DrMeasurementReport, this);\n };\n\n QcomGnss.prototype.hasDrMeasurementReport = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.initDrMeasurementReport = function () {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_DrMeasurementReport, this);\n };\n\n QcomGnss.prototype.isDrMeasurementReport = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 2;\n };\n\n QcomGnss.prototype.setDrMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.adoptDrSvPoly = function (value) {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.disownDrSvPoly = function () {\n return capnp_ts_1.Struct.disown(this.getDrSvPoly());\n };\n\n QcomGnss.prototype.getDrSvPoly = function () {\n capnp_ts_1.Struct.testWhich(\"drSvPoly\", capnp_ts_1.Struct.getUint16(8, this), 3, this);\n return capnp_ts_1.Struct.getStruct(0, QcomGnss_DrSvPolyReport, this);\n };\n\n QcomGnss.prototype.hasDrSvPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.initDrSvPoly = function () {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss_DrSvPolyReport, this);\n };\n\n QcomGnss.prototype.isDrSvPoly = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 3;\n };\n\n QcomGnss.prototype.setDrSvPoly = function (value) {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.adoptRawLog = function (value) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.disownRawLog = function () {\n return capnp_ts_1.Struct.disown(this.getRawLog());\n };\n\n QcomGnss.prototype.getRawLog = function () {\n capnp_ts_1.Struct.testWhich(\"rawLog\", capnp_ts_1.Struct.getUint16(8, this), 4, this);\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n QcomGnss.prototype.hasRawLog = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.initRawLog = function (length) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n QcomGnss.prototype.isRawLog = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 4;\n };\n\n QcomGnss.prototype.setRawLog = function (value) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n QcomGnss.prototype.toString = function () {\n return \"QcomGnss_\" + _super.prototype.toString.call(this);\n };\n\n QcomGnss.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n QcomGnss.MEASUREMENT_REPORT = QcomGnss_Which.MEASUREMENT_REPORT;\n QcomGnss.CLOCK_REPORT = QcomGnss_Which.CLOCK_REPORT;\n QcomGnss.DR_MEASUREMENT_REPORT = QcomGnss_Which.DR_MEASUREMENT_REPORT;\n QcomGnss.DR_SV_POLY = QcomGnss_Which.DR_SV_POLY;\n QcomGnss.RAW_LOG = QcomGnss_Which.RAW_LOG;\n QcomGnss.MeasurementSource = QcomGnss_MeasurementSource;\n QcomGnss.SVObservationState = QcomGnss_SVObservationState;\n QcomGnss.MeasurementStatus = QcomGnss_MeasurementStatus;\n QcomGnss.MeasurementReport = QcomGnss_MeasurementReport;\n QcomGnss.ClockReport = QcomGnss_ClockReport;\n QcomGnss.DrMeasurementReport = QcomGnss_DrMeasurementReport;\n QcomGnss.DrSvPolyReport = QcomGnss_DrSvPolyReport;\n QcomGnss._capnp = {\n displayName: \"QcomGnss\",\n id: \"de94674b07ae51c1\",\n size: new capnp_ts_1.ObjectSize(16, 1)\n };\n return QcomGnss;\n}(capnp_ts_1.Struct);\n\nexports.QcomGnss = QcomGnss;\n\nvar LidarPts =\n/** @class */\nfunction (_super) {\n __extends(LidarPts, _super);\n\n function LidarPts() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LidarPts.prototype.adoptR = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LidarPts.prototype.disownR = function () {\n return capnp_ts_1.Struct.disown(this.getR());\n };\n\n LidarPts.prototype.getR = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Uint16List, this);\n };\n\n LidarPts.prototype.hasR = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LidarPts.prototype.initR = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Uint16List, length, this);\n };\n\n LidarPts.prototype.setR = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LidarPts.prototype.adoptTheta = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LidarPts.prototype.disownTheta = function () {\n return capnp_ts_1.Struct.disown(this.getTheta());\n };\n\n LidarPts.prototype.getTheta = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Uint16List, this);\n };\n\n LidarPts.prototype.hasTheta = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LidarPts.prototype.initTheta = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Uint16List, length, this);\n };\n\n LidarPts.prototype.setTheta = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LidarPts.prototype.adoptReflect = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LidarPts.prototype.disownReflect = function () {\n return capnp_ts_1.Struct.disown(this.getReflect());\n };\n\n LidarPts.prototype.getReflect = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Uint8List, this);\n };\n\n LidarPts.prototype.hasReflect = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LidarPts.prototype.initReflect = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Uint8List, length, this);\n };\n\n LidarPts.prototype.setReflect = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LidarPts.prototype.getIdx = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n LidarPts.prototype.setIdx = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n LidarPts.prototype.adoptPkt = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LidarPts.prototype.disownPkt = function () {\n return capnp_ts_1.Struct.disown(this.getPkt());\n };\n\n LidarPts.prototype.getPkt = function () {\n return capnp_ts_1.Struct.getData(3, this);\n };\n\n LidarPts.prototype.hasPkt = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LidarPts.prototype.initPkt = function (length) {\n return capnp_ts_1.Struct.initData(3, length, this);\n };\n\n LidarPts.prototype.setPkt = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LidarPts.prototype.toString = function () {\n return \"LidarPts_\" + _super.prototype.toString.call(this);\n };\n\n LidarPts._capnp = {\n displayName: \"LidarPts\",\n id: \"e3d6685d4e9d8f7a\",\n size: new capnp_ts_1.ObjectSize(8, 4)\n };\n return LidarPts;\n}(capnp_ts_1.Struct);\n\nexports.LidarPts = LidarPts;\n\nvar ProcLog_Process =\n/** @class */\nfunction (_super) {\n __extends(ProcLog_Process, _super);\n\n function ProcLog_Process() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ProcLog_Process.prototype.getPid = function () {\n return capnp_ts_1.Struct.getInt32(0, this);\n };\n\n ProcLog_Process.prototype.setPid = function (value) {\n capnp_ts_1.Struct.setInt32(0, value, this);\n };\n\n ProcLog_Process.prototype.getName = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n ProcLog_Process.prototype.setName = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n ProcLog_Process.prototype.getState = function () {\n return capnp_ts_1.Struct.getUint8(4, this);\n };\n\n ProcLog_Process.prototype.setState = function (value) {\n capnp_ts_1.Struct.setUint8(4, value, this);\n };\n\n ProcLog_Process.prototype.getPpid = function () {\n return capnp_ts_1.Struct.getInt32(8, this);\n };\n\n ProcLog_Process.prototype.setPpid = function (value) {\n capnp_ts_1.Struct.setInt32(8, value, this);\n };\n\n ProcLog_Process.prototype.getCpuUser = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ProcLog_Process.prototype.setCpuUser = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ProcLog_Process.prototype.getCpuSystem = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ProcLog_Process.prototype.setCpuSystem = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ProcLog_Process.prototype.getCpuChildrenUser = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ProcLog_Process.prototype.setCpuChildrenUser = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ProcLog_Process.prototype.getCpuChildrenSystem = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ProcLog_Process.prototype.setCpuChildrenSystem = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ProcLog_Process.prototype.getPriority = function () {\n return capnp_ts_1.Struct.getInt64(32, this);\n };\n\n ProcLog_Process.prototype.setPriority = function (value) {\n capnp_ts_1.Struct.setInt64(32, value, this);\n };\n\n ProcLog_Process.prototype.getNice = function () {\n return capnp_ts_1.Struct.getInt32(28, this);\n };\n\n ProcLog_Process.prototype.setNice = function (value) {\n capnp_ts_1.Struct.setInt32(28, value, this);\n };\n\n ProcLog_Process.prototype.getNumThreads = function () {\n return capnp_ts_1.Struct.getInt32(40, this);\n };\n\n ProcLog_Process.prototype.setNumThreads = function (value) {\n capnp_ts_1.Struct.setInt32(40, value, this);\n };\n\n ProcLog_Process.prototype.getStartTime = function () {\n return capnp_ts_1.Struct.getFloat64(48, this);\n };\n\n ProcLog_Process.prototype.setStartTime = function (value) {\n capnp_ts_1.Struct.setFloat64(48, value, this);\n };\n\n ProcLog_Process.prototype.getMemVms = function () {\n return capnp_ts_1.Struct.getUint64(56, this);\n };\n\n ProcLog_Process.prototype.setMemVms = function (value) {\n capnp_ts_1.Struct.setUint64(56, value, this);\n };\n\n ProcLog_Process.prototype.getMemRss = function () {\n return capnp_ts_1.Struct.getUint64(64, this);\n };\n\n ProcLog_Process.prototype.setMemRss = function (value) {\n capnp_ts_1.Struct.setUint64(64, value, this);\n };\n\n ProcLog_Process.prototype.getProcessor = function () {\n return capnp_ts_1.Struct.getInt32(44, this);\n };\n\n ProcLog_Process.prototype.setProcessor = function (value) {\n capnp_ts_1.Struct.setInt32(44, value, this);\n };\n\n ProcLog_Process.prototype.adoptCmdline = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog_Process.prototype.disownCmdline = function () {\n return capnp_ts_1.Struct.disown(this.getCmdline());\n };\n\n ProcLog_Process.prototype.getCmdline = function () {\n return capnp_ts_1.Struct.getList(1, capnp.TextList, this);\n };\n\n ProcLog_Process.prototype.hasCmdline = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog_Process.prototype.initCmdline = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.TextList, length, this);\n };\n\n ProcLog_Process.prototype.setCmdline = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog_Process.prototype.getExe = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n ProcLog_Process.prototype.setExe = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n ProcLog_Process.prototype.toString = function () {\n return \"ProcLog_Process_\" + _super.prototype.toString.call(this);\n };\n\n ProcLog_Process._capnp = {\n displayName: \"Process\",\n id: \"b0b85613f19e6d28\",\n size: new capnp_ts_1.ObjectSize(72, 3)\n };\n return ProcLog_Process;\n}(capnp_ts_1.Struct);\n\nexports.ProcLog_Process = ProcLog_Process;\n\nvar ProcLog_CPUTimes =\n/** @class */\nfunction (_super) {\n __extends(ProcLog_CPUTimes, _super);\n\n function ProcLog_CPUTimes() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ProcLog_CPUTimes.prototype.getCpuNum = function () {\n return capnp_ts_1.Struct.getInt64(0, this);\n };\n\n ProcLog_CPUTimes.prototype.setCpuNum = function (value) {\n capnp_ts_1.Struct.setInt64(0, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getUser = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ProcLog_CPUTimes.prototype.setUser = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getNice = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n ProcLog_CPUTimes.prototype.setNice = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getSystem = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n ProcLog_CPUTimes.prototype.setSystem = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getIdle = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n ProcLog_CPUTimes.prototype.setIdle = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getIowait = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n ProcLog_CPUTimes.prototype.setIowait = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getIrq = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n ProcLog_CPUTimes.prototype.setIrq = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n ProcLog_CPUTimes.prototype.getSoftirq = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n ProcLog_CPUTimes.prototype.setSoftirq = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n ProcLog_CPUTimes.prototype.toString = function () {\n return \"ProcLog_CPUTimes_\" + _super.prototype.toString.call(this);\n };\n\n ProcLog_CPUTimes._capnp = {\n displayName: \"CPUTimes\",\n id: \"f189c8c5bf2ce087\",\n size: new capnp_ts_1.ObjectSize(40, 0)\n };\n return ProcLog_CPUTimes;\n}(capnp_ts_1.Struct);\n\nexports.ProcLog_CPUTimes = ProcLog_CPUTimes;\n\nvar ProcLog_Mem =\n/** @class */\nfunction (_super) {\n __extends(ProcLog_Mem, _super);\n\n function ProcLog_Mem() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ProcLog_Mem.prototype.getTotal = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n ProcLog_Mem.prototype.setTotal = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n ProcLog_Mem.prototype.getFree = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n ProcLog_Mem.prototype.setFree = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n ProcLog_Mem.prototype.getAvailable = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n ProcLog_Mem.prototype.setAvailable = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n ProcLog_Mem.prototype.getBuffers = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n ProcLog_Mem.prototype.setBuffers = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n ProcLog_Mem.prototype.getCached = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n ProcLog_Mem.prototype.setCached = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n ProcLog_Mem.prototype.getActive = function () {\n return capnp_ts_1.Struct.getUint64(40, this);\n };\n\n ProcLog_Mem.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setUint64(40, value, this);\n };\n\n ProcLog_Mem.prototype.getInactive = function () {\n return capnp_ts_1.Struct.getUint64(48, this);\n };\n\n ProcLog_Mem.prototype.setInactive = function (value) {\n capnp_ts_1.Struct.setUint64(48, value, this);\n };\n\n ProcLog_Mem.prototype.getShared = function () {\n return capnp_ts_1.Struct.getUint64(56, this);\n };\n\n ProcLog_Mem.prototype.setShared = function (value) {\n capnp_ts_1.Struct.setUint64(56, value, this);\n };\n\n ProcLog_Mem.prototype.toString = function () {\n return \"ProcLog_Mem_\" + _super.prototype.toString.call(this);\n };\n\n ProcLog_Mem._capnp = {\n displayName: \"Mem\",\n id: \"fd095f94f08b3fd4\",\n size: new capnp_ts_1.ObjectSize(64, 0)\n };\n return ProcLog_Mem;\n}(capnp_ts_1.Struct);\n\nexports.ProcLog_Mem = ProcLog_Mem;\n\nvar ProcLog =\n/** @class */\nfunction (_super) {\n __extends(ProcLog, _super);\n\n function ProcLog() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ProcLog.prototype.adoptCpuTimes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ProcLog.prototype.disownCpuTimes = function () {\n return capnp_ts_1.Struct.disown(this.getCpuTimes());\n };\n\n ProcLog.prototype.getCpuTimes = function () {\n return capnp_ts_1.Struct.getList(0, ProcLog._CpuTimes, this);\n };\n\n ProcLog.prototype.hasCpuTimes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ProcLog.prototype.initCpuTimes = function (length) {\n return capnp_ts_1.Struct.initList(0, ProcLog._CpuTimes, length, this);\n };\n\n ProcLog.prototype.setCpuTimes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n ProcLog.prototype.adoptMem = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog.prototype.disownMem = function () {\n return capnp_ts_1.Struct.disown(this.getMem());\n };\n\n ProcLog.prototype.getMem = function () {\n return capnp_ts_1.Struct.getStruct(1, ProcLog_Mem, this);\n };\n\n ProcLog.prototype.hasMem = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog.prototype.initMem = function () {\n return capnp_ts_1.Struct.initStructAt(1, ProcLog_Mem, this);\n };\n\n ProcLog.prototype.setMem = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n ProcLog.prototype.adoptProcs = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ProcLog.prototype.disownProcs = function () {\n return capnp_ts_1.Struct.disown(this.getProcs());\n };\n\n ProcLog.prototype.getProcs = function () {\n return capnp_ts_1.Struct.getList(2, ProcLog._Procs, this);\n };\n\n ProcLog.prototype.hasProcs = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ProcLog.prototype.initProcs = function (length) {\n return capnp_ts_1.Struct.initList(2, ProcLog._Procs, length, this);\n };\n\n ProcLog.prototype.setProcs = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n ProcLog.prototype.toString = function () {\n return \"ProcLog_\" + _super.prototype.toString.call(this);\n };\n\n ProcLog.Process = ProcLog_Process;\n ProcLog.CPUTimes = ProcLog_CPUTimes;\n ProcLog.Mem = ProcLog_Mem;\n ProcLog._capnp = {\n displayName: \"ProcLog\",\n id: \"af85387b3f681406\",\n size: new capnp_ts_1.ObjectSize(0, 3)\n };\n return ProcLog;\n}(capnp_ts_1.Struct);\n\nexports.ProcLog = ProcLog;\n\nvar UbloxGnss_MeasurementReport_ReceiverStatus =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_MeasurementReport_ReceiverStatus, _super);\n\n function UbloxGnss_MeasurementReport_ReceiverStatus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_MeasurementReport_ReceiverStatus.prototype.getLeapSecValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n UbloxGnss_MeasurementReport_ReceiverStatus.prototype.setLeapSecValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n UbloxGnss_MeasurementReport_ReceiverStatus.prototype.getClkReset = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n UbloxGnss_MeasurementReport_ReceiverStatus.prototype.setClkReset = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n UbloxGnss_MeasurementReport_ReceiverStatus.prototype.toString = function () {\n return \"UbloxGnss_MeasurementReport_ReceiverStatus_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_MeasurementReport_ReceiverStatus._capnp = {\n displayName: \"ReceiverStatus\",\n id: \"fbb838d65160aab6\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return UbloxGnss_MeasurementReport_ReceiverStatus;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_MeasurementReport_ReceiverStatus = UbloxGnss_MeasurementReport_ReceiverStatus;\n\nvar UbloxGnss_MeasurementReport_Measurement_TrackingStatus =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_MeasurementReport_Measurement_TrackingStatus, _super);\n\n function UbloxGnss_MeasurementReport_Measurement_TrackingStatus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.getPseudorangeValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.setPseudorangeValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.getCarrierPhaseValid = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.setCarrierPhaseValid = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.getHalfCycleValid = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.setHalfCycleValid = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.getHalfCycleSubtracted = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.setHalfCycleSubtracted = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus.prototype.toString = function () {\n return \"UbloxGnss_MeasurementReport_Measurement_TrackingStatus_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_MeasurementReport_Measurement_TrackingStatus._capnp = {\n displayName: \"TrackingStatus\",\n id: \"e8efb3a802b299b2\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return UbloxGnss_MeasurementReport_Measurement_TrackingStatus;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_MeasurementReport_Measurement_TrackingStatus = UbloxGnss_MeasurementReport_Measurement_TrackingStatus;\n\nvar UbloxGnss_MeasurementReport_Measurement =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_MeasurementReport_Measurement, _super);\n\n function UbloxGnss_MeasurementReport_Measurement() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getUint8(0, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setUint8(0, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.adoptTrackingStatus = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.disownTrackingStatus = function () {\n return capnp_ts_1.Struct.disown(this.getTrackingStatus());\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getTrackingStatus = function () {\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss_MeasurementReport_Measurement_TrackingStatus, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.hasTrackingStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.initTrackingStatus = function () {\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss_MeasurementReport_Measurement_TrackingStatus, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setTrackingStatus = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getPseudorange = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setPseudorange = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getCarrierCycles = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setCarrierCycles = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getDoppler = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setDoppler = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getGnssId = function () {\n return capnp_ts_1.Struct.getUint8(1, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setGnssId = function (value) {\n capnp_ts_1.Struct.setUint8(1, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getGlonassFrequencyIndex = function () {\n return capnp_ts_1.Struct.getUint8(2, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setGlonassFrequencyIndex = function (value) {\n capnp_ts_1.Struct.setUint8(2, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getLocktime = function () {\n return capnp_ts_1.Struct.getUint16(24, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setLocktime = function (value) {\n capnp_ts_1.Struct.setUint16(24, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getCno = function () {\n return capnp_ts_1.Struct.getUint8(3, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setCno = function (value) {\n capnp_ts_1.Struct.setUint8(3, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getPseudorangeStdev = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setPseudorangeStdev = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getCarrierPhaseStdev = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setCarrierPhaseStdev = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getDopplerStdev = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setDopplerStdev = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.getSigId = function () {\n return capnp_ts_1.Struct.getUint8(26, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.setSigId = function (value) {\n capnp_ts_1.Struct.setUint8(26, value, this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.prototype.toString = function () {\n return \"UbloxGnss_MeasurementReport_Measurement_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_MeasurementReport_Measurement.TrackingStatus = UbloxGnss_MeasurementReport_Measurement_TrackingStatus;\n UbloxGnss_MeasurementReport_Measurement._capnp = {\n displayName: \"Measurement\",\n id: \"8f8a655f5e326401\",\n size: new capnp_ts_1.ObjectSize(40, 1)\n };\n return UbloxGnss_MeasurementReport_Measurement;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_MeasurementReport_Measurement = UbloxGnss_MeasurementReport_Measurement;\n\nvar UbloxGnss_MeasurementReport =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_MeasurementReport, _super);\n\n function UbloxGnss_MeasurementReport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_MeasurementReport.prototype.getRcvTow = function () {\n return capnp_ts_1.Struct.getFloat64(0, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setRcvTow = function (value) {\n capnp_ts_1.Struct.setFloat64(0, value, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setUint16(8, value, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.getLeapSeconds = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setLeapSeconds = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.adoptReceiverStatus = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.disownReceiverStatus = function () {\n return capnp_ts_1.Struct.disown(this.getReceiverStatus());\n };\n\n UbloxGnss_MeasurementReport.prototype.getReceiverStatus = function () {\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss_MeasurementReport_ReceiverStatus, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.hasReceiverStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.initReceiverStatus = function () {\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss_MeasurementReport_ReceiverStatus, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setReceiverStatus = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.getNumMeas = function () {\n return capnp_ts_1.Struct.getUint8(12, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setNumMeas = function (value) {\n capnp_ts_1.Struct.setUint8(12, value, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.adoptMeasurements = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.disownMeasurements = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurements());\n };\n\n UbloxGnss_MeasurementReport.prototype.getMeasurements = function () {\n return capnp_ts_1.Struct.getList(1, UbloxGnss_MeasurementReport._Measurements, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.hasMeasurements = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.initMeasurements = function (length) {\n return capnp_ts_1.Struct.initList(1, UbloxGnss_MeasurementReport._Measurements, length, this);\n };\n\n UbloxGnss_MeasurementReport.prototype.setMeasurements = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_MeasurementReport.prototype.toString = function () {\n return \"UbloxGnss_MeasurementReport_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_MeasurementReport.ReceiverStatus = UbloxGnss_MeasurementReport_ReceiverStatus;\n UbloxGnss_MeasurementReport.Measurement = UbloxGnss_MeasurementReport_Measurement;\n UbloxGnss_MeasurementReport._capnp = {\n displayName: \"MeasurementReport\",\n id: \"a73ba546a29820f4\",\n size: new capnp_ts_1.ObjectSize(16, 2)\n };\n return UbloxGnss_MeasurementReport;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_MeasurementReport = UbloxGnss_MeasurementReport;\n\nvar UbloxGnss_Ephemeris =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_Ephemeris, _super);\n\n function UbloxGnss_Ephemeris() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_Ephemeris.prototype.getSvId = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setSvId = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getYear = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setYear = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getMonth = function () {\n return capnp_ts_1.Struct.getUint16(4, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setMonth = function (value) {\n capnp_ts_1.Struct.setUint16(4, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getDay = function () {\n return capnp_ts_1.Struct.getUint16(6, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setDay = function (value) {\n capnp_ts_1.Struct.setUint16(6, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getHour = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setHour = function (value) {\n capnp_ts_1.Struct.setUint16(8, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getMinute = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setMinute = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getSecond = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setSecond = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getAf0 = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setAf0 = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getAf1 = function () {\n return capnp_ts_1.Struct.getFloat64(24, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setAf1 = function (value) {\n capnp_ts_1.Struct.setFloat64(24, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getAf2 = function () {\n return capnp_ts_1.Struct.getFloat64(32, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setAf2 = function (value) {\n capnp_ts_1.Struct.setFloat64(32, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getIode = function () {\n return capnp_ts_1.Struct.getFloat64(40, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIode = function (value) {\n capnp_ts_1.Struct.setFloat64(40, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCrs = function () {\n return capnp_ts_1.Struct.getFloat64(48, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCrs = function (value) {\n capnp_ts_1.Struct.setFloat64(48, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getDeltaN = function () {\n return capnp_ts_1.Struct.getFloat64(56, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setDeltaN = function (value) {\n capnp_ts_1.Struct.setFloat64(56, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getM0 = function () {\n return capnp_ts_1.Struct.getFloat64(64, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setM0 = function (value) {\n capnp_ts_1.Struct.setFloat64(64, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCuc = function () {\n return capnp_ts_1.Struct.getFloat64(72, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCuc = function (value) {\n capnp_ts_1.Struct.setFloat64(72, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getEcc = function () {\n return capnp_ts_1.Struct.getFloat64(80, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setEcc = function (value) {\n capnp_ts_1.Struct.setFloat64(80, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCus = function () {\n return capnp_ts_1.Struct.getFloat64(88, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCus = function (value) {\n capnp_ts_1.Struct.setFloat64(88, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getA = function () {\n return capnp_ts_1.Struct.getFloat64(96, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setA = function (value) {\n capnp_ts_1.Struct.setFloat64(96, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getToe = function () {\n return capnp_ts_1.Struct.getFloat64(104, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setToe = function (value) {\n capnp_ts_1.Struct.setFloat64(104, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCic = function () {\n return capnp_ts_1.Struct.getFloat64(112, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCic = function (value) {\n capnp_ts_1.Struct.setFloat64(112, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getOmega0 = function () {\n return capnp_ts_1.Struct.getFloat64(120, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setOmega0 = function (value) {\n capnp_ts_1.Struct.setFloat64(120, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCis = function () {\n return capnp_ts_1.Struct.getFloat64(128, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCis = function (value) {\n capnp_ts_1.Struct.setFloat64(128, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getI0 = function () {\n return capnp_ts_1.Struct.getFloat64(136, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setI0 = function (value) {\n capnp_ts_1.Struct.setFloat64(136, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCrc = function () {\n return capnp_ts_1.Struct.getFloat64(144, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCrc = function (value) {\n capnp_ts_1.Struct.setFloat64(144, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getOmega = function () {\n return capnp_ts_1.Struct.getFloat64(152, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setOmega = function (value) {\n capnp_ts_1.Struct.setFloat64(152, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getOmegaDot = function () {\n return capnp_ts_1.Struct.getFloat64(160, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setOmegaDot = function (value) {\n capnp_ts_1.Struct.setFloat64(160, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getIDot = function () {\n return capnp_ts_1.Struct.getFloat64(168, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIDot = function (value) {\n capnp_ts_1.Struct.setFloat64(168, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getCodesL2 = function () {\n return capnp_ts_1.Struct.getFloat64(176, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setCodesL2 = function (value) {\n capnp_ts_1.Struct.setFloat64(176, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getFloat64(184, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setFloat64(184, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getL2 = function () {\n return capnp_ts_1.Struct.getFloat64(192, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setL2 = function (value) {\n capnp_ts_1.Struct.setFloat64(192, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getSvAcc = function () {\n return capnp_ts_1.Struct.getFloat64(200, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setSvAcc = function (value) {\n capnp_ts_1.Struct.setFloat64(200, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getSvHealth = function () {\n return capnp_ts_1.Struct.getFloat64(208, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setSvHealth = function (value) {\n capnp_ts_1.Struct.setFloat64(208, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getTgd = function () {\n return capnp_ts_1.Struct.getFloat64(216, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setTgd = function (value) {\n capnp_ts_1.Struct.setFloat64(216, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getIodc = function () {\n return capnp_ts_1.Struct.getFloat64(224, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIodc = function (value) {\n capnp_ts_1.Struct.setFloat64(224, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getTransmissionTime = function () {\n return capnp_ts_1.Struct.getFloat64(232, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setTransmissionTime = function (value) {\n capnp_ts_1.Struct.setFloat64(232, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getFitInterval = function () {\n return capnp_ts_1.Struct.getFloat64(240, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setFitInterval = function (value) {\n capnp_ts_1.Struct.setFloat64(240, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getToc = function () {\n return capnp_ts_1.Struct.getFloat64(248, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setToc = function (value) {\n capnp_ts_1.Struct.setFloat64(248, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.getIonoCoeffsValid = function () {\n return capnp_ts_1.Struct.getBit(2048, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIonoCoeffsValid = function (value) {\n capnp_ts_1.Struct.setBit(2048, value, this);\n };\n\n UbloxGnss_Ephemeris.prototype.adoptIonoAlpha = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_Ephemeris.prototype.disownIonoAlpha = function () {\n return capnp_ts_1.Struct.disown(this.getIonoAlpha());\n };\n\n UbloxGnss_Ephemeris.prototype.getIonoAlpha = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float64List, this);\n };\n\n UbloxGnss_Ephemeris.prototype.hasIonoAlpha = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_Ephemeris.prototype.initIonoAlpha = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float64List, length, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIonoAlpha = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_Ephemeris.prototype.adoptIonoBeta = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_Ephemeris.prototype.disownIonoBeta = function () {\n return capnp_ts_1.Struct.disown(this.getIonoBeta());\n };\n\n UbloxGnss_Ephemeris.prototype.getIonoBeta = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float64List, this);\n };\n\n UbloxGnss_Ephemeris.prototype.hasIonoBeta = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_Ephemeris.prototype.initIonoBeta = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float64List, length, this);\n };\n\n UbloxGnss_Ephemeris.prototype.setIonoBeta = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_Ephemeris.prototype.toString = function () {\n return \"UbloxGnss_Ephemeris_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_Ephemeris._capnp = {\n displayName: \"Ephemeris\",\n id: \"d8418c788118f85c\",\n size: new capnp_ts_1.ObjectSize(264, 2)\n };\n return UbloxGnss_Ephemeris;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_Ephemeris = UbloxGnss_Ephemeris;\n\nvar UbloxGnss_IonoData =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss_IonoData, _super);\n\n function UbloxGnss_IonoData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss_IonoData.prototype.getSvHealth = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n UbloxGnss_IonoData.prototype.setSvHealth = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n UbloxGnss_IonoData.prototype.getTow = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n UbloxGnss_IonoData.prototype.setTow = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n UbloxGnss_IonoData.prototype.getGpsWeek = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n UbloxGnss_IonoData.prototype.setGpsWeek = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n UbloxGnss_IonoData.prototype.adoptIonoAlpha = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_IonoData.prototype.disownIonoAlpha = function () {\n return capnp_ts_1.Struct.disown(this.getIonoAlpha());\n };\n\n UbloxGnss_IonoData.prototype.getIonoAlpha = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float64List, this);\n };\n\n UbloxGnss_IonoData.prototype.hasIonoAlpha = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_IonoData.prototype.initIonoAlpha = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float64List, length, this);\n };\n\n UbloxGnss_IonoData.prototype.setIonoAlpha = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss_IonoData.prototype.adoptIonoBeta = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_IonoData.prototype.disownIonoBeta = function () {\n return capnp_ts_1.Struct.disown(this.getIonoBeta());\n };\n\n UbloxGnss_IonoData.prototype.getIonoBeta = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float64List, this);\n };\n\n UbloxGnss_IonoData.prototype.hasIonoBeta = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_IonoData.prototype.initIonoBeta = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float64List, length, this);\n };\n\n UbloxGnss_IonoData.prototype.setIonoBeta = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UbloxGnss_IonoData.prototype.getHealthValid = function () {\n return capnp_ts_1.Struct.getBit(32, this);\n };\n\n UbloxGnss_IonoData.prototype.setHealthValid = function (value) {\n capnp_ts_1.Struct.setBit(32, value, this);\n };\n\n UbloxGnss_IonoData.prototype.getIonoCoeffsValid = function () {\n return capnp_ts_1.Struct.getBit(33, this);\n };\n\n UbloxGnss_IonoData.prototype.setIonoCoeffsValid = function (value) {\n capnp_ts_1.Struct.setBit(33, value, this);\n };\n\n UbloxGnss_IonoData.prototype.toString = function () {\n return \"UbloxGnss_IonoData_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss_IonoData._capnp = {\n displayName: \"IonoData\",\n id: \"c3a3a8de519a4a26\",\n size: new capnp_ts_1.ObjectSize(24, 2)\n };\n return UbloxGnss_IonoData;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss_IonoData = UbloxGnss_IonoData;\nvar UbloxGnss_Which;\n\n(function (UbloxGnss_Which) {\n UbloxGnss_Which[UbloxGnss_Which[\"MEASUREMENT_REPORT\"] = 0] = \"MEASUREMENT_REPORT\";\n UbloxGnss_Which[UbloxGnss_Which[\"EPHEMERIS\"] = 1] = \"EPHEMERIS\";\n UbloxGnss_Which[UbloxGnss_Which[\"IONO_DATA\"] = 2] = \"IONO_DATA\";\n})(UbloxGnss_Which = exports.UbloxGnss_Which || (exports.UbloxGnss_Which = {}));\n\nvar UbloxGnss =\n/** @class */\nfunction (_super) {\n __extends(UbloxGnss, _super);\n\n function UbloxGnss() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UbloxGnss.prototype.adoptMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.disownMeasurementReport = function () {\n return capnp_ts_1.Struct.disown(this.getMeasurementReport());\n };\n\n UbloxGnss.prototype.getMeasurementReport = function () {\n capnp_ts_1.Struct.testWhich(\"measurementReport\", capnp_ts_1.Struct.getUint16(0, this), 0, this);\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss_MeasurementReport, this);\n };\n\n UbloxGnss.prototype.hasMeasurementReport = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.initMeasurementReport = function () {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss_MeasurementReport, this);\n };\n\n UbloxGnss.prototype.isMeasurementReport = function () {\n return capnp_ts_1.Struct.getUint16(0, this) === 0;\n };\n\n UbloxGnss.prototype.setMeasurementReport = function (value) {\n capnp_ts_1.Struct.setUint16(0, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.adoptEphemeris = function (value) {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.disownEphemeris = function () {\n return capnp_ts_1.Struct.disown(this.getEphemeris());\n };\n\n UbloxGnss.prototype.getEphemeris = function () {\n capnp_ts_1.Struct.testWhich(\"ephemeris\", capnp_ts_1.Struct.getUint16(0, this), 1, this);\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss_Ephemeris, this);\n };\n\n UbloxGnss.prototype.hasEphemeris = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.initEphemeris = function () {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss_Ephemeris, this);\n };\n\n UbloxGnss.prototype.isEphemeris = function () {\n return capnp_ts_1.Struct.getUint16(0, this) === 1;\n };\n\n UbloxGnss.prototype.setEphemeris = function (value) {\n capnp_ts_1.Struct.setUint16(0, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.adoptIonoData = function (value) {\n capnp_ts_1.Struct.setUint16(0, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.disownIonoData = function () {\n return capnp_ts_1.Struct.disown(this.getIonoData());\n };\n\n UbloxGnss.prototype.getIonoData = function () {\n capnp_ts_1.Struct.testWhich(\"ionoData\", capnp_ts_1.Struct.getUint16(0, this), 2, this);\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss_IonoData, this);\n };\n\n UbloxGnss.prototype.hasIonoData = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.initIonoData = function () {\n capnp_ts_1.Struct.setUint16(0, 2, this);\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss_IonoData, this);\n };\n\n UbloxGnss.prototype.isIonoData = function () {\n return capnp_ts_1.Struct.getUint16(0, this) === 2;\n };\n\n UbloxGnss.prototype.setIonoData = function (value) {\n capnp_ts_1.Struct.setUint16(0, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UbloxGnss.prototype.toString = function () {\n return \"UbloxGnss_\" + _super.prototype.toString.call(this);\n };\n\n UbloxGnss.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n UbloxGnss.MEASUREMENT_REPORT = UbloxGnss_Which.MEASUREMENT_REPORT;\n UbloxGnss.EPHEMERIS = UbloxGnss_Which.EPHEMERIS;\n UbloxGnss.IONO_DATA = UbloxGnss_Which.IONO_DATA;\n UbloxGnss.MeasurementReport = UbloxGnss_MeasurementReport;\n UbloxGnss.Ephemeris = UbloxGnss_Ephemeris;\n UbloxGnss.IonoData = UbloxGnss_IonoData;\n UbloxGnss._capnp = {\n displayName: \"UbloxGnss\",\n id: \"85dddd7ce6cefa5d\",\n size: new capnp_ts_1.ObjectSize(8, 1)\n };\n return UbloxGnss;\n}(capnp_ts_1.Struct);\n\nexports.UbloxGnss = UbloxGnss;\n\nvar Clocks =\n/** @class */\nfunction (_super) {\n __extends(Clocks, _super);\n\n function Clocks() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Clocks.prototype.getBootTimeNanos = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n Clocks.prototype.setBootTimeNanos = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n Clocks.prototype.getMonotonicNanos = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n Clocks.prototype.setMonotonicNanos = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n Clocks.prototype.getMonotonicRawNanos = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n Clocks.prototype.setMonotonicRawNanos = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n Clocks.prototype.getWallTimeNanos = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n Clocks.prototype.setWallTimeNanos = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n Clocks.prototype.getModemUptimeMillis = function () {\n return capnp_ts_1.Struct.getUint64(32, this);\n };\n\n Clocks.prototype.setModemUptimeMillis = function (value) {\n capnp_ts_1.Struct.setUint64(32, value, this);\n };\n\n Clocks.prototype.toString = function () {\n return \"Clocks_\" + _super.prototype.toString.call(this);\n };\n\n Clocks._capnp = {\n displayName: \"Clocks\",\n id: \"c95fb49a7bdc4618\",\n size: new capnp_ts_1.ObjectSize(40, 0)\n };\n return Clocks;\n}(capnp_ts_1.Struct);\n\nexports.Clocks = Clocks;\n\nvar LiveMpcData =\n/** @class */\nfunction (_super) {\n __extends(LiveMpcData, _super);\n\n function LiveMpcData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveMpcData.prototype.adoptX = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMpcData.prototype.disownX = function () {\n return capnp_ts_1.Struct.disown(this.getX());\n };\n\n LiveMpcData.prototype.getX = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveMpcData.prototype.hasX = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMpcData.prototype.initX = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveMpcData.prototype.setX = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMpcData.prototype.adoptY = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMpcData.prototype.disownY = function () {\n return capnp_ts_1.Struct.disown(this.getY());\n };\n\n LiveMpcData.prototype.getY = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveMpcData.prototype.hasY = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMpcData.prototype.initY = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveMpcData.prototype.setY = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMpcData.prototype.adoptPsi = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMpcData.prototype.disownPsi = function () {\n return capnp_ts_1.Struct.disown(this.getPsi());\n };\n\n LiveMpcData.prototype.getPsi = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n LiveMpcData.prototype.hasPsi = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMpcData.prototype.initPsi = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n LiveMpcData.prototype.setPsi = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMpcData.prototype.adoptDelta = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMpcData.prototype.disownDelta = function () {\n return capnp_ts_1.Struct.disown(this.getDelta());\n };\n\n LiveMpcData.prototype.getDelta = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n LiveMpcData.prototype.hasDelta = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMpcData.prototype.initDelta = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n LiveMpcData.prototype.setDelta = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMpcData.prototype.getQpIterations = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n LiveMpcData.prototype.setQpIterations = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n LiveMpcData.prototype.getCalculationTime = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n LiveMpcData.prototype.setCalculationTime = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n LiveMpcData.prototype.getCost = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n LiveMpcData.prototype.setCost = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n LiveMpcData.prototype.toString = function () {\n return \"LiveMpcData_\" + _super.prototype.toString.call(this);\n };\n\n LiveMpcData._capnp = {\n displayName: \"LiveMpcData\",\n id: \"92a5e332a85f32a0\",\n size: new capnp_ts_1.ObjectSize(24, 4)\n };\n return LiveMpcData;\n}(capnp_ts_1.Struct);\n\nexports.LiveMpcData = LiveMpcData;\n\nvar LiveLongitudinalMpcData =\n/** @class */\nfunction (_super) {\n __extends(LiveLongitudinalMpcData, _super);\n\n function LiveLongitudinalMpcData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveLongitudinalMpcData.prototype.adoptXEgo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownXEgo = function () {\n return capnp_ts_1.Struct.disown(this.getXEgo());\n };\n\n LiveLongitudinalMpcData.prototype.getXEgo = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasXEgo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLongitudinalMpcData.prototype.initXEgo = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setXEgo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveLongitudinalMpcData.prototype.adoptVEgo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownVEgo = function () {\n return capnp_ts_1.Struct.disown(this.getVEgo());\n };\n\n LiveLongitudinalMpcData.prototype.getVEgo = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasVEgo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLongitudinalMpcData.prototype.initVEgo = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setVEgo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveLongitudinalMpcData.prototype.adoptAEgo = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownAEgo = function () {\n return capnp_ts_1.Struct.disown(this.getAEgo());\n };\n\n LiveLongitudinalMpcData.prototype.getAEgo = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasAEgo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLongitudinalMpcData.prototype.initAEgo = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setAEgo = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveLongitudinalMpcData.prototype.adoptXLead = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownXLead = function () {\n return capnp_ts_1.Struct.disown(this.getXLead());\n };\n\n LiveLongitudinalMpcData.prototype.getXLead = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasXLead = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLongitudinalMpcData.prototype.initXLead = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setXLead = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveLongitudinalMpcData.prototype.adoptVLead = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownVLead = function () {\n return capnp_ts_1.Struct.disown(this.getVLead());\n };\n\n LiveLongitudinalMpcData.prototype.getVLead = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasVLead = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLongitudinalMpcData.prototype.initVLead = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setVLead = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveLongitudinalMpcData.prototype.adoptALead = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLongitudinalMpcData.prototype.disownALead = function () {\n return capnp_ts_1.Struct.disown(this.getALead());\n };\n\n LiveLongitudinalMpcData.prototype.getALead = function () {\n return capnp_ts_1.Struct.getList(5, capnp.Float32List, this);\n };\n\n LiveLongitudinalMpcData.prototype.hasALead = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLongitudinalMpcData.prototype.initALead = function (length) {\n return capnp_ts_1.Struct.initList(5, capnp.Float32List, length, this);\n };\n\n LiveLongitudinalMpcData.prototype.setALead = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n LiveLongitudinalMpcData.prototype.getALeadTau = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n LiveLongitudinalMpcData.prototype.setALeadTau = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n LiveLongitudinalMpcData.prototype.getQpIterations = function () {\n return capnp_ts_1.Struct.getUint32(4, this);\n };\n\n LiveLongitudinalMpcData.prototype.setQpIterations = function (value) {\n capnp_ts_1.Struct.setUint32(4, value, this);\n };\n\n LiveLongitudinalMpcData.prototype.getMpcId = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n LiveLongitudinalMpcData.prototype.setMpcId = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n LiveLongitudinalMpcData.prototype.getCalculationTime = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n LiveLongitudinalMpcData.prototype.setCalculationTime = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n LiveLongitudinalMpcData.prototype.getCost = function () {\n return capnp_ts_1.Struct.getFloat64(24, this);\n };\n\n LiveLongitudinalMpcData.prototype.setCost = function (value) {\n capnp_ts_1.Struct.setFloat64(24, value, this);\n };\n\n LiveLongitudinalMpcData.prototype.toString = function () {\n return \"LiveLongitudinalMpcData_\" + _super.prototype.toString.call(this);\n };\n\n LiveLongitudinalMpcData._capnp = {\n displayName: \"LiveLongitudinalMpcData\",\n id: \"e7e17c434f865ae2\",\n size: new capnp_ts_1.ObjectSize(32, 6)\n };\n return LiveLongitudinalMpcData;\n}(capnp_ts_1.Struct);\n\nexports.LiveLongitudinalMpcData = LiveLongitudinalMpcData;\n\nvar ECEFPointDEPRECATED =\n/** @class */\nfunction (_super) {\n __extends(ECEFPointDEPRECATED, _super);\n\n function ECEFPointDEPRECATED() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ECEFPointDEPRECATED.prototype.getX = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n ECEFPointDEPRECATED.prototype.setX = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n ECEFPointDEPRECATED.prototype.getY = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n ECEFPointDEPRECATED.prototype.setY = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n ECEFPointDEPRECATED.prototype.getZ = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n ECEFPointDEPRECATED.prototype.setZ = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n ECEFPointDEPRECATED.prototype.toString = function () {\n return \"ECEFPointDEPRECATED_\" + _super.prototype.toString.call(this);\n };\n\n ECEFPointDEPRECATED._capnp = {\n displayName: \"ECEFPointDEPRECATED\",\n id: \"e10e21168db0c7f7\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return ECEFPointDEPRECATED;\n}(capnp_ts_1.Struct);\n\nexports.ECEFPointDEPRECATED = ECEFPointDEPRECATED;\n\nvar ECEFPoint =\n/** @class */\nfunction (_super) {\n __extends(ECEFPoint, _super);\n\n function ECEFPoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n ECEFPoint.prototype.getX = function () {\n return capnp_ts_1.Struct.getFloat64(0, this);\n };\n\n ECEFPoint.prototype.setX = function (value) {\n capnp_ts_1.Struct.setFloat64(0, value, this);\n };\n\n ECEFPoint.prototype.getY = function () {\n return capnp_ts_1.Struct.getFloat64(8, this);\n };\n\n ECEFPoint.prototype.setY = function (value) {\n capnp_ts_1.Struct.setFloat64(8, value, this);\n };\n\n ECEFPoint.prototype.getZ = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n ECEFPoint.prototype.setZ = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n ECEFPoint.prototype.toString = function () {\n return \"ECEFPoint_\" + _super.prototype.toString.call(this);\n };\n\n ECEFPoint._capnp = {\n displayName: \"ECEFPoint\",\n id: \"c25bbbd524983447\",\n size: new capnp_ts_1.ObjectSize(24, 0)\n };\n return ECEFPoint;\n}(capnp_ts_1.Struct);\n\nexports.ECEFPoint = ECEFPoint;\n\nvar GPSPlannerPoints =\n/** @class */\nfunction (_super) {\n __extends(GPSPlannerPoints, _super);\n\n function GPSPlannerPoints() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GPSPlannerPoints.prototype.adoptCurPosDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPoints.prototype.disownCurPosDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getCurPosDEPRECATED());\n };\n\n GPSPlannerPoints.prototype.getCurPosDEPRECATED = function () {\n return capnp_ts_1.Struct.getStruct(0, ECEFPointDEPRECATED, this);\n };\n\n GPSPlannerPoints.prototype.hasCurPosDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPoints.prototype.initCurPosDEPRECATED = function () {\n return capnp_ts_1.Struct.initStructAt(0, ECEFPointDEPRECATED, this);\n };\n\n GPSPlannerPoints.prototype.setCurPosDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPoints.prototype.adoptPointsDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n GPSPlannerPoints.prototype.disownPointsDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getPointsDEPRECATED());\n };\n\n GPSPlannerPoints.prototype.getPointsDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(1, GPSPlannerPoints._PointsDEPRECATED, this);\n };\n\n GPSPlannerPoints.prototype.hasPointsDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n GPSPlannerPoints.prototype.initPointsDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(1, GPSPlannerPoints._PointsDEPRECATED, length, this);\n };\n\n GPSPlannerPoints.prototype.setPointsDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n GPSPlannerPoints.prototype.adoptCurPos = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPoints.prototype.disownCurPos = function () {\n return capnp_ts_1.Struct.disown(this.getCurPos());\n };\n\n GPSPlannerPoints.prototype.getCurPos = function () {\n return capnp_ts_1.Struct.getStruct(3, ECEFPoint, this);\n };\n\n GPSPlannerPoints.prototype.hasCurPos = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPoints.prototype.initCurPos = function () {\n return capnp_ts_1.Struct.initStructAt(3, ECEFPoint, this);\n };\n\n GPSPlannerPoints.prototype.setCurPos = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPoints.prototype.adoptPoints = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n GPSPlannerPoints.prototype.disownPoints = function () {\n return capnp_ts_1.Struct.disown(this.getPoints());\n };\n\n GPSPlannerPoints.prototype.getPoints = function () {\n return capnp_ts_1.Struct.getList(4, GPSPlannerPoints._Points, this);\n };\n\n GPSPlannerPoints.prototype.hasPoints = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n GPSPlannerPoints.prototype.initPoints = function (length) {\n return capnp_ts_1.Struct.initList(4, GPSPlannerPoints._Points, length, this);\n };\n\n GPSPlannerPoints.prototype.setPoints = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n GPSPlannerPoints.prototype.getValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n GPSPlannerPoints.prototype.setValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n GPSPlannerPoints.prototype.getTrackName = function () {\n return capnp_ts_1.Struct.getText(2, this);\n };\n\n GPSPlannerPoints.prototype.setTrackName = function (value) {\n capnp_ts_1.Struct.setText(2, value, this);\n };\n\n GPSPlannerPoints.prototype.getSpeedLimit = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n GPSPlannerPoints.prototype.setSpeedLimit = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n GPSPlannerPoints.prototype.getAccelTarget = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n GPSPlannerPoints.prototype.setAccelTarget = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n GPSPlannerPoints.prototype.toString = function () {\n return \"GPSPlannerPoints_\" + _super.prototype.toString.call(this);\n };\n\n GPSPlannerPoints._capnp = {\n displayName: \"GPSPlannerPoints\",\n id: \"ab54c59699f8f9f3\",\n size: new capnp_ts_1.ObjectSize(16, 5)\n };\n return GPSPlannerPoints;\n}(capnp_ts_1.Struct);\n\nexports.GPSPlannerPoints = GPSPlannerPoints;\n\nvar GPSPlannerPlan =\n/** @class */\nfunction (_super) {\n __extends(GPSPlannerPlan, _super);\n\n function GPSPlannerPlan() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n GPSPlannerPlan.prototype.getValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n GPSPlannerPlan.prototype.setValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n GPSPlannerPlan.prototype.adoptPoly = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPlan.prototype.disownPoly = function () {\n return capnp_ts_1.Struct.disown(this.getPoly());\n };\n\n GPSPlannerPlan.prototype.getPoly = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n GPSPlannerPlan.prototype.hasPoly = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPlan.prototype.initPoly = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n GPSPlannerPlan.prototype.setPoly = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n GPSPlannerPlan.prototype.getTrackName = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n GPSPlannerPlan.prototype.setTrackName = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n GPSPlannerPlan.prototype.getSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n GPSPlannerPlan.prototype.setSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n GPSPlannerPlan.prototype.getAcceleration = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n GPSPlannerPlan.prototype.setAcceleration = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n GPSPlannerPlan.prototype.adoptPointsDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n GPSPlannerPlan.prototype.disownPointsDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getPointsDEPRECATED());\n };\n\n GPSPlannerPlan.prototype.getPointsDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(2, GPSPlannerPlan._PointsDEPRECATED, this);\n };\n\n GPSPlannerPlan.prototype.hasPointsDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n GPSPlannerPlan.prototype.initPointsDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(2, GPSPlannerPlan._PointsDEPRECATED, length, this);\n };\n\n GPSPlannerPlan.prototype.setPointsDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n GPSPlannerPlan.prototype.adoptPoints = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPlan.prototype.disownPoints = function () {\n return capnp_ts_1.Struct.disown(this.getPoints());\n };\n\n GPSPlannerPlan.prototype.getPoints = function () {\n return capnp_ts_1.Struct.getList(3, GPSPlannerPlan._Points, this);\n };\n\n GPSPlannerPlan.prototype.hasPoints = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPlan.prototype.initPoints = function (length) {\n return capnp_ts_1.Struct.initList(3, GPSPlannerPlan._Points, length, this);\n };\n\n GPSPlannerPlan.prototype.setPoints = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n GPSPlannerPlan.prototype.getXLookahead = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n GPSPlannerPlan.prototype.setXLookahead = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n GPSPlannerPlan.prototype.toString = function () {\n return \"GPSPlannerPlan_\" + _super.prototype.toString.call(this);\n };\n\n GPSPlannerPlan._capnp = {\n displayName: \"GPSPlannerPlan\",\n id: \"f5ad1d90cdc1dd6b\",\n size: new capnp_ts_1.ObjectSize(16, 4)\n };\n return GPSPlannerPlan;\n}(capnp_ts_1.Struct);\n\nexports.GPSPlannerPlan = GPSPlannerPlan;\nvar TrafficEvent_Type;\n\n(function (TrafficEvent_Type) {\n TrafficEvent_Type[TrafficEvent_Type[\"STOP_SIGN\"] = 0] = \"STOP_SIGN\";\n TrafficEvent_Type[TrafficEvent_Type[\"LIGHT_RED\"] = 1] = \"LIGHT_RED\";\n TrafficEvent_Type[TrafficEvent_Type[\"LIGHT_YELLOW\"] = 2] = \"LIGHT_YELLOW\";\n TrafficEvent_Type[TrafficEvent_Type[\"LIGHT_GREEN\"] = 3] = \"LIGHT_GREEN\";\n TrafficEvent_Type[TrafficEvent_Type[\"STOP_LIGHT\"] = 4] = \"STOP_LIGHT\";\n})(TrafficEvent_Type = exports.TrafficEvent_Type || (exports.TrafficEvent_Type = {}));\n\nvar TrafficEvent_Action;\n\n(function (TrafficEvent_Action) {\n TrafficEvent_Action[TrafficEvent_Action[\"NONE\"] = 0] = \"NONE\";\n TrafficEvent_Action[TrafficEvent_Action[\"YIELD\"] = 1] = \"YIELD\";\n TrafficEvent_Action[TrafficEvent_Action[\"STOP\"] = 2] = \"STOP\";\n TrafficEvent_Action[TrafficEvent_Action[\"RESUME_READY\"] = 3] = \"RESUME_READY\";\n})(TrafficEvent_Action = exports.TrafficEvent_Action || (exports.TrafficEvent_Action = {}));\n\nvar TrafficEvent =\n/** @class */\nfunction (_super) {\n __extends(TrafficEvent, _super);\n\n function TrafficEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n TrafficEvent.prototype.getType = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n TrafficEvent.prototype.setType = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n TrafficEvent.prototype.getDistance = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n TrafficEvent.prototype.setDistance = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n TrafficEvent.prototype.getAction = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n TrafficEvent.prototype.setAction = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n TrafficEvent.prototype.getResuming = function () {\n return capnp_ts_1.Struct.getBit(64, this);\n };\n\n TrafficEvent.prototype.setResuming = function (value) {\n capnp_ts_1.Struct.setBit(64, value, this);\n };\n\n TrafficEvent.prototype.toString = function () {\n return \"TrafficEvent_\" + _super.prototype.toString.call(this);\n };\n\n TrafficEvent.Type = TrafficEvent_Type;\n TrafficEvent.Action = TrafficEvent_Action;\n TrafficEvent._capnp = {\n displayName: \"TrafficEvent\",\n id: \"acfa74a094e62626\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return TrafficEvent;\n}(capnp_ts_1.Struct);\n\nexports.TrafficEvent = TrafficEvent;\n\nvar OrbslamCorrection =\n/** @class */\nfunction (_super) {\n __extends(OrbslamCorrection, _super);\n\n function OrbslamCorrection() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbslamCorrection.prototype.getCorrectionMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbslamCorrection.prototype.setCorrectionMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbslamCorrection.prototype.adoptPrePositionECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbslamCorrection.prototype.disownPrePositionECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPrePositionECEF());\n };\n\n OrbslamCorrection.prototype.getPrePositionECEF = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float64List, this);\n };\n\n OrbslamCorrection.prototype.hasPrePositionECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbslamCorrection.prototype.initPrePositionECEF = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float64List, length, this);\n };\n\n OrbslamCorrection.prototype.setPrePositionECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbslamCorrection.prototype.adoptPostPositionECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbslamCorrection.prototype.disownPostPositionECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPostPositionECEF());\n };\n\n OrbslamCorrection.prototype.getPostPositionECEF = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float64List, this);\n };\n\n OrbslamCorrection.prototype.hasPostPositionECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbslamCorrection.prototype.initPostPositionECEF = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float64List, length, this);\n };\n\n OrbslamCorrection.prototype.setPostPositionECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbslamCorrection.prototype.adoptPrePoseQuatECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbslamCorrection.prototype.disownPrePoseQuatECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPrePoseQuatECEF());\n };\n\n OrbslamCorrection.prototype.getPrePoseQuatECEF = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n OrbslamCorrection.prototype.hasPrePoseQuatECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbslamCorrection.prototype.initPrePoseQuatECEF = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n OrbslamCorrection.prototype.setPrePoseQuatECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbslamCorrection.prototype.adoptPostPoseQuatECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbslamCorrection.prototype.disownPostPoseQuatECEF = function () {\n return capnp_ts_1.Struct.disown(this.getPostPoseQuatECEF());\n };\n\n OrbslamCorrection.prototype.getPostPoseQuatECEF = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n OrbslamCorrection.prototype.hasPostPoseQuatECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbslamCorrection.prototype.initPostPoseQuatECEF = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n OrbslamCorrection.prototype.setPostPoseQuatECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbslamCorrection.prototype.getNumInliers = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n OrbslamCorrection.prototype.setNumInliers = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n OrbslamCorrection.prototype.toString = function () {\n return \"OrbslamCorrection_\" + _super.prototype.toString.call(this);\n };\n\n OrbslamCorrection._capnp = {\n displayName: \"OrbslamCorrection\",\n id: \"8afd33dc9b35e1aa\",\n size: new capnp_ts_1.ObjectSize(16, 4)\n };\n return OrbslamCorrection;\n}(capnp_ts_1.Struct);\n\nexports.OrbslamCorrection = OrbslamCorrection;\n\nvar OrbObservation =\n/** @class */\nfunction (_super) {\n __extends(OrbObservation, _super);\n\n function OrbObservation() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbObservation.prototype.getObservationMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbObservation.prototype.setObservationMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbObservation.prototype.adoptNormalizedCoordinates = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbObservation.prototype.disownNormalizedCoordinates = function () {\n return capnp_ts_1.Struct.disown(this.getNormalizedCoordinates());\n };\n\n OrbObservation.prototype.getNormalizedCoordinates = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n OrbObservation.prototype.hasNormalizedCoordinates = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbObservation.prototype.initNormalizedCoordinates = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n OrbObservation.prototype.setNormalizedCoordinates = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbObservation.prototype.adoptLocationECEF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbObservation.prototype.disownLocationECEF = function () {\n return capnp_ts_1.Struct.disown(this.getLocationECEF());\n };\n\n OrbObservation.prototype.getLocationECEF = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float64List, this);\n };\n\n OrbObservation.prototype.hasLocationECEF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbObservation.prototype.initLocationECEF = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float64List, length, this);\n };\n\n OrbObservation.prototype.setLocationECEF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbObservation.prototype.getMatchDistance = function () {\n return capnp_ts_1.Struct.getUint32(8, this);\n };\n\n OrbObservation.prototype.setMatchDistance = function (value) {\n capnp_ts_1.Struct.setUint32(8, value, this);\n };\n\n OrbObservation.prototype.toString = function () {\n return \"OrbObservation_\" + _super.prototype.toString.call(this);\n };\n\n OrbObservation._capnp = {\n displayName: \"OrbObservation\",\n id: \"9b326d4e436afec7\",\n size: new capnp_ts_1.ObjectSize(16, 2)\n };\n return OrbObservation;\n}(capnp_ts_1.Struct);\n\nexports.OrbObservation = OrbObservation;\nvar UiNavigationEvent_Type;\n\n(function (UiNavigationEvent_Type) {\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"NONE\"] = 0] = \"NONE\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"LANE_CHANGE_LEFT\"] = 1] = \"LANE_CHANGE_LEFT\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"LANE_CHANGE_RIGHT\"] = 2] = \"LANE_CHANGE_RIGHT\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"MERGE_LEFT\"] = 3] = \"MERGE_LEFT\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"MERGE_RIGHT\"] = 4] = \"MERGE_RIGHT\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"TURN_LEFT\"] = 5] = \"TURN_LEFT\";\n UiNavigationEvent_Type[UiNavigationEvent_Type[\"TURN_RIGHT\"] = 6] = \"TURN_RIGHT\";\n})(UiNavigationEvent_Type = exports.UiNavigationEvent_Type || (exports.UiNavigationEvent_Type = {}));\n\nvar UiNavigationEvent_Status;\n\n(function (UiNavigationEvent_Status) {\n UiNavigationEvent_Status[UiNavigationEvent_Status[\"NONE\"] = 0] = \"NONE\";\n UiNavigationEvent_Status[UiNavigationEvent_Status[\"PASSIVE\"] = 1] = \"PASSIVE\";\n UiNavigationEvent_Status[UiNavigationEvent_Status[\"APPROACHING\"] = 2] = \"APPROACHING\";\n UiNavigationEvent_Status[UiNavigationEvent_Status[\"ACTIVE\"] = 3] = \"ACTIVE\";\n})(UiNavigationEvent_Status = exports.UiNavigationEvent_Status || (exports.UiNavigationEvent_Status = {}));\n\nvar UiNavigationEvent =\n/** @class */\nfunction (_super) {\n __extends(UiNavigationEvent, _super);\n\n function UiNavigationEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UiNavigationEvent.prototype.getType = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n UiNavigationEvent.prototype.setType = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n UiNavigationEvent.prototype.getStatus = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n UiNavigationEvent.prototype.setStatus = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n UiNavigationEvent.prototype.getDistanceTo = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n UiNavigationEvent.prototype.setDistanceTo = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n UiNavigationEvent.prototype.adoptEndRoadPointDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UiNavigationEvent.prototype.disownEndRoadPointDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getEndRoadPointDEPRECATED());\n };\n\n UiNavigationEvent.prototype.getEndRoadPointDEPRECATED = function () {\n return capnp_ts_1.Struct.getStruct(0, ECEFPointDEPRECATED, this);\n };\n\n UiNavigationEvent.prototype.hasEndRoadPointDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UiNavigationEvent.prototype.initEndRoadPointDEPRECATED = function () {\n return capnp_ts_1.Struct.initStructAt(0, ECEFPointDEPRECATED, this);\n };\n\n UiNavigationEvent.prototype.setEndRoadPointDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n UiNavigationEvent.prototype.adoptEndRoadPoint = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UiNavigationEvent.prototype.disownEndRoadPoint = function () {\n return capnp_ts_1.Struct.disown(this.getEndRoadPoint());\n };\n\n UiNavigationEvent.prototype.getEndRoadPoint = function () {\n return capnp_ts_1.Struct.getStruct(1, ECEFPoint, this);\n };\n\n UiNavigationEvent.prototype.hasEndRoadPoint = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UiNavigationEvent.prototype.initEndRoadPoint = function () {\n return capnp_ts_1.Struct.initStructAt(1, ECEFPoint, this);\n };\n\n UiNavigationEvent.prototype.setEndRoadPoint = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n UiNavigationEvent.prototype.toString = function () {\n return \"UiNavigationEvent_\" + _super.prototype.toString.call(this);\n };\n\n UiNavigationEvent.Type = UiNavigationEvent_Type;\n UiNavigationEvent.Status = UiNavigationEvent_Status;\n UiNavigationEvent._capnp = {\n displayName: \"UiNavigationEvent\",\n id: \"90c8426c3eaddd3b\",\n size: new capnp_ts_1.ObjectSize(8, 2)\n };\n return UiNavigationEvent;\n}(capnp_ts_1.Struct);\n\nexports.UiNavigationEvent = UiNavigationEvent;\nvar UiLayoutState_App;\n\n(function (UiLayoutState_App) {\n UiLayoutState_App[UiLayoutState_App[\"HOME\"] = 0] = \"HOME\";\n UiLayoutState_App[UiLayoutState_App[\"MUSIC\"] = 1] = \"MUSIC\";\n UiLayoutState_App[UiLayoutState_App[\"NAV\"] = 2] = \"NAV\";\n})(UiLayoutState_App = exports.UiLayoutState_App || (exports.UiLayoutState_App = {}));\n\nvar UiLayoutState =\n/** @class */\nfunction (_super) {\n __extends(UiLayoutState, _super);\n\n function UiLayoutState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n UiLayoutState.prototype.getActiveApp = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n UiLayoutState.prototype.setActiveApp = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n UiLayoutState.prototype.getSidebarCollapsed = function () {\n return capnp_ts_1.Struct.getBit(16, this);\n };\n\n UiLayoutState.prototype.setSidebarCollapsed = function (value) {\n capnp_ts_1.Struct.setBit(16, value, this);\n };\n\n UiLayoutState.prototype.getMapEnabled = function () {\n return capnp_ts_1.Struct.getBit(17, this);\n };\n\n UiLayoutState.prototype.setMapEnabled = function (value) {\n capnp_ts_1.Struct.setBit(17, value, this);\n };\n\n UiLayoutState.prototype.toString = function () {\n return \"UiLayoutState_\" + _super.prototype.toString.call(this);\n };\n\n UiLayoutState.App = UiLayoutState_App;\n UiLayoutState._capnp = {\n displayName: \"UiLayoutState\",\n id: \"88dcce08ad29dda0\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return UiLayoutState;\n}(capnp_ts_1.Struct);\n\nexports.UiLayoutState = UiLayoutState;\n\nvar Joystick =\n/** @class */\nfunction (_super) {\n __extends(Joystick, _super);\n\n function Joystick() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Joystick.prototype.adoptAxes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Joystick.prototype.disownAxes = function () {\n return capnp_ts_1.Struct.disown(this.getAxes());\n };\n\n Joystick.prototype.getAxes = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n Joystick.prototype.hasAxes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Joystick.prototype.initAxes = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n Joystick.prototype.setAxes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Joystick.prototype.adoptButtons = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Joystick.prototype.disownButtons = function () {\n return capnp_ts_1.Struct.disown(this.getButtons());\n };\n\n Joystick.prototype.getButtons = function () {\n return capnp_ts_1.Struct.getList(1, capnp.BoolList, this);\n };\n\n Joystick.prototype.hasButtons = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Joystick.prototype.initButtons = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.BoolList, length, this);\n };\n\n Joystick.prototype.setButtons = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Joystick.prototype.toString = function () {\n return \"Joystick_\" + _super.prototype.toString.call(this);\n };\n\n Joystick._capnp = {\n displayName: \"Joystick\",\n id: \"e42401658e2715e2\",\n size: new capnp_ts_1.ObjectSize(0, 2)\n };\n return Joystick;\n}(capnp_ts_1.Struct);\n\nexports.Joystick = Joystick;\n\nvar OrbOdometry =\n/** @class */\nfunction (_super) {\n __extends(OrbOdometry, _super);\n\n function OrbOdometry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbOdometry.prototype.getStartMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbOdometry.prototype.setStartMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbOdometry.prototype.getEndMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n OrbOdometry.prototype.setEndMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n OrbOdometry.prototype.adoptF = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbOdometry.prototype.disownF = function () {\n return capnp_ts_1.Struct.disown(this.getF());\n };\n\n OrbOdometry.prototype.getF = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float64List, this);\n };\n\n OrbOdometry.prototype.hasF = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbOdometry.prototype.initF = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float64List, length, this);\n };\n\n OrbOdometry.prototype.setF = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbOdometry.prototype.getErr = function () {\n return capnp_ts_1.Struct.getFloat64(16, this);\n };\n\n OrbOdometry.prototype.setErr = function (value) {\n capnp_ts_1.Struct.setFloat64(16, value, this);\n };\n\n OrbOdometry.prototype.getInliers = function () {\n return capnp_ts_1.Struct.getInt32(24, this);\n };\n\n OrbOdometry.prototype.setInliers = function (value) {\n capnp_ts_1.Struct.setInt32(24, value, this);\n };\n\n OrbOdometry.prototype.adoptMatches = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbOdometry.prototype.disownMatches = function () {\n return capnp_ts_1.Struct.disown(this.getMatches());\n };\n\n OrbOdometry.prototype.getMatches = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Int16List, this);\n };\n\n OrbOdometry.prototype.hasMatches = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbOdometry.prototype.initMatches = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Int16List, length, this);\n };\n\n OrbOdometry.prototype.setMatches = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbOdometry.prototype.toString = function () {\n return \"OrbOdometry_\" + _super.prototype.toString.call(this);\n };\n\n OrbOdometry._capnp = {\n displayName: \"OrbOdometry\",\n id: \"d7700859ed1f5b76\",\n size: new capnp_ts_1.ObjectSize(32, 2)\n };\n return OrbOdometry;\n}(capnp_ts_1.Struct);\n\nexports.OrbOdometry = OrbOdometry;\n\nvar OrbFeatures =\n/** @class */\nfunction (_super) {\n __extends(OrbFeatures, _super);\n\n function OrbFeatures() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbFeatures.prototype.getTimestampEof = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbFeatures.prototype.setTimestampEof = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbFeatures.prototype.adoptXs = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbFeatures.prototype.disownXs = function () {\n return capnp_ts_1.Struct.disown(this.getXs());\n };\n\n OrbFeatures.prototype.getXs = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n OrbFeatures.prototype.hasXs = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbFeatures.prototype.initXs = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n OrbFeatures.prototype.setXs = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbFeatures.prototype.adoptYs = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbFeatures.prototype.disownYs = function () {\n return capnp_ts_1.Struct.disown(this.getYs());\n };\n\n OrbFeatures.prototype.getYs = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n OrbFeatures.prototype.hasYs = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbFeatures.prototype.initYs = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n OrbFeatures.prototype.setYs = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbFeatures.prototype.adoptDescriptors = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbFeatures.prototype.disownDescriptors = function () {\n return capnp_ts_1.Struct.disown(this.getDescriptors());\n };\n\n OrbFeatures.prototype.getDescriptors = function () {\n return capnp_ts_1.Struct.getData(2, this);\n };\n\n OrbFeatures.prototype.hasDescriptors = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbFeatures.prototype.initDescriptors = function (length) {\n return capnp_ts_1.Struct.initData(2, length, this);\n };\n\n OrbFeatures.prototype.setDescriptors = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbFeatures.prototype.adoptOctaves = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbFeatures.prototype.disownOctaves = function () {\n return capnp_ts_1.Struct.disown(this.getOctaves());\n };\n\n OrbFeatures.prototype.getOctaves = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Int8List, this);\n };\n\n OrbFeatures.prototype.hasOctaves = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbFeatures.prototype.initOctaves = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Int8List, length, this);\n };\n\n OrbFeatures.prototype.setOctaves = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n OrbFeatures.prototype.getTimestampLastEof = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n OrbFeatures.prototype.setTimestampLastEof = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n OrbFeatures.prototype.adoptMatches = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n OrbFeatures.prototype.disownMatches = function () {\n return capnp_ts_1.Struct.disown(this.getMatches());\n };\n\n OrbFeatures.prototype.getMatches = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Int16List, this);\n };\n\n OrbFeatures.prototype.hasMatches = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n OrbFeatures.prototype.initMatches = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Int16List, length, this);\n };\n\n OrbFeatures.prototype.setMatches = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n OrbFeatures.prototype.toString = function () {\n return \"OrbFeatures_\" + _super.prototype.toString.call(this);\n };\n\n OrbFeatures._capnp = {\n displayName: \"OrbFeatures\",\n id: \"cd60164a8a0159ef\",\n size: new capnp_ts_1.ObjectSize(16, 5)\n };\n return OrbFeatures;\n}(capnp_ts_1.Struct);\n\nexports.OrbFeatures = OrbFeatures;\n\nvar OrbFeaturesSummary =\n/** @class */\nfunction (_super) {\n __extends(OrbFeaturesSummary, _super);\n\n function OrbFeaturesSummary() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbFeaturesSummary.prototype.getTimestampEof = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbFeaturesSummary.prototype.setTimestampEof = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbFeaturesSummary.prototype.getTimestampLastEof = function () {\n return capnp_ts_1.Struct.getUint64(8, this);\n };\n\n OrbFeaturesSummary.prototype.setTimestampLastEof = function (value) {\n capnp_ts_1.Struct.setUint64(8, value, this);\n };\n\n OrbFeaturesSummary.prototype.getFeatureCount = function () {\n return capnp_ts_1.Struct.getUint16(16, this);\n };\n\n OrbFeaturesSummary.prototype.setFeatureCount = function (value) {\n capnp_ts_1.Struct.setUint16(16, value, this);\n };\n\n OrbFeaturesSummary.prototype.getMatchCount = function () {\n return capnp_ts_1.Struct.getUint16(18, this);\n };\n\n OrbFeaturesSummary.prototype.setMatchCount = function (value) {\n capnp_ts_1.Struct.setUint16(18, value, this);\n };\n\n OrbFeaturesSummary.prototype.getComputeNs = function () {\n return capnp_ts_1.Struct.getUint64(24, this);\n };\n\n OrbFeaturesSummary.prototype.setComputeNs = function (value) {\n capnp_ts_1.Struct.setUint64(24, value, this);\n };\n\n OrbFeaturesSummary.prototype.toString = function () {\n return \"OrbFeaturesSummary_\" + _super.prototype.toString.call(this);\n };\n\n OrbFeaturesSummary._capnp = {\n displayName: \"OrbFeaturesSummary\",\n id: \"d500d30c5803fa4f\",\n size: new capnp_ts_1.ObjectSize(32, 0)\n };\n return OrbFeaturesSummary;\n}(capnp_ts_1.Struct);\n\nexports.OrbFeaturesSummary = OrbFeaturesSummary;\n\nvar OrbKeyFrame =\n/** @class */\nfunction (_super) {\n __extends(OrbKeyFrame, _super);\n\n function OrbKeyFrame() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n OrbKeyFrame.prototype.getId = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n OrbKeyFrame.prototype.setId = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n OrbKeyFrame.prototype.adoptPos = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbKeyFrame.prototype.disownPos = function () {\n return capnp_ts_1.Struct.disown(this.getPos());\n };\n\n OrbKeyFrame.prototype.getPos = function () {\n return capnp_ts_1.Struct.getStruct(0, ECEFPoint, this);\n };\n\n OrbKeyFrame.prototype.hasPos = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbKeyFrame.prototype.initPos = function () {\n return capnp_ts_1.Struct.initStructAt(0, ECEFPoint, this);\n };\n\n OrbKeyFrame.prototype.setPos = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n OrbKeyFrame.prototype.adoptDpos = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbKeyFrame.prototype.disownDpos = function () {\n return capnp_ts_1.Struct.disown(this.getDpos());\n };\n\n OrbKeyFrame.prototype.getDpos = function () {\n return capnp_ts_1.Struct.getList(1, OrbKeyFrame._Dpos, this);\n };\n\n OrbKeyFrame.prototype.hasDpos = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbKeyFrame.prototype.initDpos = function (length) {\n return capnp_ts_1.Struct.initList(1, OrbKeyFrame._Dpos, length, this);\n };\n\n OrbKeyFrame.prototype.setDpos = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n OrbKeyFrame.prototype.adoptDescriptors = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbKeyFrame.prototype.disownDescriptors = function () {\n return capnp_ts_1.Struct.disown(this.getDescriptors());\n };\n\n OrbKeyFrame.prototype.getDescriptors = function () {\n return capnp_ts_1.Struct.getData(2, this);\n };\n\n OrbKeyFrame.prototype.hasDescriptors = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbKeyFrame.prototype.initDescriptors = function (length) {\n return capnp_ts_1.Struct.initData(2, length, this);\n };\n\n OrbKeyFrame.prototype.setDescriptors = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n OrbKeyFrame.prototype.toString = function () {\n return \"OrbKeyFrame_\" + _super.prototype.toString.call(this);\n };\n\n OrbKeyFrame._capnp = {\n displayName: \"OrbKeyFrame\",\n id: \"c8233c0345e27e24\",\n size: new capnp_ts_1.ObjectSize(8, 3)\n };\n return OrbKeyFrame;\n}(capnp_ts_1.Struct);\n\nexports.OrbKeyFrame = OrbKeyFrame;\n\nvar DriverMonitoring =\n/** @class */\nfunction (_super) {\n __extends(DriverMonitoring, _super);\n\n function DriverMonitoring() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n DriverMonitoring.prototype.getFrameId = function () {\n return capnp_ts_1.Struct.getUint32(0, this);\n };\n\n DriverMonitoring.prototype.setFrameId = function (value) {\n capnp_ts_1.Struct.setUint32(0, value, this);\n };\n\n DriverMonitoring.prototype.adoptDescriptorDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n DriverMonitoring.prototype.disownDescriptorDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getDescriptorDEPRECATED());\n };\n\n DriverMonitoring.prototype.getDescriptorDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n DriverMonitoring.prototype.hasDescriptorDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n DriverMonitoring.prototype.initDescriptorDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n DriverMonitoring.prototype.setDescriptorDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n DriverMonitoring.prototype.getStdDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n DriverMonitoring.prototype.setStdDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n DriverMonitoring.prototype.adoptFaceOrientation = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n DriverMonitoring.prototype.disownFaceOrientation = function () {\n return capnp_ts_1.Struct.disown(this.getFaceOrientation());\n };\n\n DriverMonitoring.prototype.getFaceOrientation = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n DriverMonitoring.prototype.hasFaceOrientation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n DriverMonitoring.prototype.initFaceOrientation = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n DriverMonitoring.prototype.setFaceOrientation = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n DriverMonitoring.prototype.adoptFacePosition = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n DriverMonitoring.prototype.disownFacePosition = function () {\n return capnp_ts_1.Struct.disown(this.getFacePosition());\n };\n\n DriverMonitoring.prototype.getFacePosition = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n DriverMonitoring.prototype.hasFacePosition = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n DriverMonitoring.prototype.initFacePosition = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n DriverMonitoring.prototype.setFacePosition = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n DriverMonitoring.prototype.getFaceProb = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n DriverMonitoring.prototype.setFaceProb = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n DriverMonitoring.prototype.getLeftEyeProb = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n DriverMonitoring.prototype.setLeftEyeProb = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n DriverMonitoring.prototype.getRightEyeProb = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n DriverMonitoring.prototype.setRightEyeProb = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n DriverMonitoring.prototype.getLeftBlinkProb = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n DriverMonitoring.prototype.setLeftBlinkProb = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n DriverMonitoring.prototype.getRightBlinkProb = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n DriverMonitoring.prototype.setRightBlinkProb = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n DriverMonitoring.prototype.toString = function () {\n return \"DriverMonitoring_\" + _super.prototype.toString.call(this);\n };\n\n DriverMonitoring._capnp = {\n displayName: \"DriverMonitoring\",\n id: \"debcb913d14cfb94\",\n size: new capnp_ts_1.ObjectSize(32, 3)\n };\n return DriverMonitoring;\n}(capnp_ts_1.Struct);\n\nexports.DriverMonitoring = DriverMonitoring;\n\nvar Boot =\n/** @class */\nfunction (_super) {\n __extends(Boot, _super);\n\n function Boot() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Boot.prototype.getWallTimeNanos = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n Boot.prototype.setWallTimeNanos = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n Boot.prototype.adoptLastKmsg = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Boot.prototype.disownLastKmsg = function () {\n return capnp_ts_1.Struct.disown(this.getLastKmsg());\n };\n\n Boot.prototype.getLastKmsg = function () {\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n Boot.prototype.hasLastKmsg = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Boot.prototype.initLastKmsg = function (length) {\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n Boot.prototype.setLastKmsg = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Boot.prototype.adoptLastPmsg = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Boot.prototype.disownLastPmsg = function () {\n return capnp_ts_1.Struct.disown(this.getLastPmsg());\n };\n\n Boot.prototype.getLastPmsg = function () {\n return capnp_ts_1.Struct.getData(1, this);\n };\n\n Boot.prototype.hasLastPmsg = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Boot.prototype.initLastPmsg = function (length) {\n return capnp_ts_1.Struct.initData(1, length, this);\n };\n\n Boot.prototype.setLastPmsg = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n Boot.prototype.toString = function () {\n return \"Boot_\" + _super.prototype.toString.call(this);\n };\n\n Boot._capnp = {\n displayName: \"Boot\",\n id: \"a12e8670927a2549\",\n size: new capnp_ts_1.ObjectSize(8, 2)\n };\n return Boot;\n}(capnp_ts_1.Struct);\n\nexports.Boot = Boot;\n\nvar LiveParametersData =\n/** @class */\nfunction (_super) {\n __extends(LiveParametersData, _super);\n\n function LiveParametersData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveParametersData.prototype.getValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n LiveParametersData.prototype.setValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n LiveParametersData.prototype.getGyroBias = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveParametersData.prototype.setGyroBias = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveParametersData.prototype.getAngleOffset = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n LiveParametersData.prototype.setAngleOffset = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n LiveParametersData.prototype.getAngleOffsetAverage = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n LiveParametersData.prototype.setAngleOffsetAverage = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n LiveParametersData.prototype.getStiffnessFactor = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n LiveParametersData.prototype.setStiffnessFactor = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n LiveParametersData.prototype.getSteerRatio = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n LiveParametersData.prototype.setSteerRatio = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n LiveParametersData.prototype.getSensorValid = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n LiveParametersData.prototype.setSensorValid = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n LiveParametersData.prototype.getYawRate = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n LiveParametersData.prototype.setYawRate = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n LiveParametersData.prototype.getPosenetSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n LiveParametersData.prototype.setPosenetSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n LiveParametersData.prototype.getPosenetValid = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n LiveParametersData.prototype.setPosenetValid = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n LiveParametersData.prototype.toString = function () {\n return \"LiveParametersData_\" + _super.prototype.toString.call(this);\n };\n\n LiveParametersData._capnp = {\n displayName: \"LiveParametersData\",\n id: \"d9058dcb967c2753\",\n size: new capnp_ts_1.ObjectSize(32, 0)\n };\n return LiveParametersData;\n}(capnp_ts_1.Struct);\n\nexports.LiveParametersData = LiveParametersData;\n\nvar LiveMapData =\n/** @class */\nfunction (_super) {\n __extends(LiveMapData, _super);\n\n function LiveMapData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n LiveMapData.prototype.getSpeedLimitValid = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n LiveMapData.prototype.setSpeedLimitValid = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n LiveMapData.prototype.getSpeedLimit = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n LiveMapData.prototype.setSpeedLimit = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n LiveMapData.prototype.getSpeedAdvisoryValid = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n LiveMapData.prototype.setSpeedAdvisoryValid = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n LiveMapData.prototype.getSpeedAdvisory = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n LiveMapData.prototype.setSpeedAdvisory = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n LiveMapData.prototype.getSpeedLimitAheadValid = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n LiveMapData.prototype.setSpeedLimitAheadValid = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n LiveMapData.prototype.getSpeedLimitAhead = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n LiveMapData.prototype.setSpeedLimitAhead = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n LiveMapData.prototype.getSpeedLimitAheadDistance = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n LiveMapData.prototype.setSpeedLimitAheadDistance = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n LiveMapData.prototype.getCurvatureValid = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n LiveMapData.prototype.setCurvatureValid = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n LiveMapData.prototype.getCurvature = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n LiveMapData.prototype.setCurvature = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n LiveMapData.prototype.getWayId = function () {\n return capnp_ts_1.Struct.getUint64(16, this);\n };\n\n LiveMapData.prototype.setWayId = function (value) {\n capnp_ts_1.Struct.setUint64(16, value, this);\n };\n\n LiveMapData.prototype.adoptRoadX = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMapData.prototype.disownRoadX = function () {\n return capnp_ts_1.Struct.disown(this.getRoadX());\n };\n\n LiveMapData.prototype.getRoadX = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n LiveMapData.prototype.hasRoadX = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMapData.prototype.initRoadX = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n LiveMapData.prototype.setRoadX = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n LiveMapData.prototype.adoptRoadY = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMapData.prototype.disownRoadY = function () {\n return capnp_ts_1.Struct.disown(this.getRoadY());\n };\n\n LiveMapData.prototype.getRoadY = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n LiveMapData.prototype.hasRoadY = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMapData.prototype.initRoadY = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n LiveMapData.prototype.setRoadY = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n LiveMapData.prototype.adoptLastGps = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMapData.prototype.disownLastGps = function () {\n return capnp_ts_1.Struct.disown(this.getLastGps());\n };\n\n LiveMapData.prototype.getLastGps = function () {\n return capnp_ts_1.Struct.getStruct(2, GpsLocationData, this);\n };\n\n LiveMapData.prototype.hasLastGps = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMapData.prototype.initLastGps = function () {\n return capnp_ts_1.Struct.initStructAt(2, GpsLocationData, this);\n };\n\n LiveMapData.prototype.setLastGps = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n LiveMapData.prototype.adoptRoadCurvatureX = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMapData.prototype.disownRoadCurvatureX = function () {\n return capnp_ts_1.Struct.disown(this.getRoadCurvatureX());\n };\n\n LiveMapData.prototype.getRoadCurvatureX = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n LiveMapData.prototype.hasRoadCurvatureX = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMapData.prototype.initRoadCurvatureX = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n LiveMapData.prototype.setRoadCurvatureX = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n LiveMapData.prototype.adoptRoadCurvature = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveMapData.prototype.disownRoadCurvature = function () {\n return capnp_ts_1.Struct.disown(this.getRoadCurvature());\n };\n\n LiveMapData.prototype.getRoadCurvature = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n LiveMapData.prototype.hasRoadCurvature = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveMapData.prototype.initRoadCurvature = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n LiveMapData.prototype.setRoadCurvature = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n LiveMapData.prototype.getDistToTurn = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n LiveMapData.prototype.setDistToTurn = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n LiveMapData.prototype.getMapValid = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n LiveMapData.prototype.setMapValid = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n LiveMapData.prototype.toString = function () {\n return \"LiveMapData_\" + _super.prototype.toString.call(this);\n };\n\n LiveMapData._capnp = {\n displayName: \"LiveMapData\",\n id: \"9854f620f0d3b9cc\",\n size: new capnp_ts_1.ObjectSize(40, 5)\n };\n return LiveMapData;\n}(capnp_ts_1.Struct);\n\nexports.LiveMapData = LiveMapData;\n\nvar CameraOdometry =\n/** @class */\nfunction (_super) {\n __extends(CameraOdometry, _super);\n\n function CameraOdometry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CameraOdometry.prototype.adoptTrans = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CameraOdometry.prototype.disownTrans = function () {\n return capnp_ts_1.Struct.disown(this.getTrans());\n };\n\n CameraOdometry.prototype.getTrans = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n CameraOdometry.prototype.hasTrans = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CameraOdometry.prototype.initTrans = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n CameraOdometry.prototype.setTrans = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CameraOdometry.prototype.adoptRot = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CameraOdometry.prototype.disownRot = function () {\n return capnp_ts_1.Struct.disown(this.getRot());\n };\n\n CameraOdometry.prototype.getRot = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n CameraOdometry.prototype.hasRot = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CameraOdometry.prototype.initRot = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n CameraOdometry.prototype.setRot = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CameraOdometry.prototype.adoptTransStd = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CameraOdometry.prototype.disownTransStd = function () {\n return capnp_ts_1.Struct.disown(this.getTransStd());\n };\n\n CameraOdometry.prototype.getTransStd = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n CameraOdometry.prototype.hasTransStd = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CameraOdometry.prototype.initTransStd = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n CameraOdometry.prototype.setTransStd = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CameraOdometry.prototype.adoptRotStd = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CameraOdometry.prototype.disownRotStd = function () {\n return capnp_ts_1.Struct.disown(this.getRotStd());\n };\n\n CameraOdometry.prototype.getRotStd = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n CameraOdometry.prototype.hasRotStd = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CameraOdometry.prototype.initRotStd = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n CameraOdometry.prototype.setRotStd = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CameraOdometry.prototype.toString = function () {\n return \"CameraOdometry_\" + _super.prototype.toString.call(this);\n };\n\n CameraOdometry._capnp = {\n displayName: \"CameraOdometry\",\n id: \"fa9a296b9fd41a96\",\n size: new capnp_ts_1.ObjectSize(0, 4)\n };\n return CameraOdometry;\n}(capnp_ts_1.Struct);\n\nexports.CameraOdometry = CameraOdometry;\n\nvar KalmanOdometry =\n/** @class */\nfunction (_super) {\n __extends(KalmanOdometry, _super);\n\n function KalmanOdometry() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n KalmanOdometry.prototype.adoptTrans = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n KalmanOdometry.prototype.disownTrans = function () {\n return capnp_ts_1.Struct.disown(this.getTrans());\n };\n\n KalmanOdometry.prototype.getTrans = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n KalmanOdometry.prototype.hasTrans = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n KalmanOdometry.prototype.initTrans = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n KalmanOdometry.prototype.setTrans = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n KalmanOdometry.prototype.adoptRot = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n KalmanOdometry.prototype.disownRot = function () {\n return capnp_ts_1.Struct.disown(this.getRot());\n };\n\n KalmanOdometry.prototype.getRot = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n KalmanOdometry.prototype.hasRot = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n KalmanOdometry.prototype.initRot = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n KalmanOdometry.prototype.setRot = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n KalmanOdometry.prototype.adoptTransStd = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n KalmanOdometry.prototype.disownTransStd = function () {\n return capnp_ts_1.Struct.disown(this.getTransStd());\n };\n\n KalmanOdometry.prototype.getTransStd = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n KalmanOdometry.prototype.hasTransStd = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n KalmanOdometry.prototype.initTransStd = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n KalmanOdometry.prototype.setTransStd = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n KalmanOdometry.prototype.adoptRotStd = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n KalmanOdometry.prototype.disownRotStd = function () {\n return capnp_ts_1.Struct.disown(this.getRotStd());\n };\n\n KalmanOdometry.prototype.getRotStd = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n KalmanOdometry.prototype.hasRotStd = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n KalmanOdometry.prototype.initRotStd = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n KalmanOdometry.prototype.setRotStd = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n KalmanOdometry.prototype.toString = function () {\n return \"KalmanOdometry_\" + _super.prototype.toString.call(this);\n };\n\n KalmanOdometry._capnp = {\n displayName: \"KalmanOdometry\",\n id: \"92e21bb7ea38793a\",\n size: new capnp_ts_1.ObjectSize(0, 4)\n };\n return KalmanOdometry;\n}(capnp_ts_1.Struct);\n\nexports.KalmanOdometry = KalmanOdometry;\nvar Event_Which;\n\n(function (Event_Which) {\n Event_Which[Event_Which[\"INIT_DATA\"] = 0] = \"INIT_DATA\";\n Event_Which[Event_Which[\"FRAME\"] = 1] = \"FRAME\";\n Event_Which[Event_Which[\"GPS_NMEA\"] = 2] = \"GPS_NMEA\";\n Event_Which[Event_Which[\"SENSOR_EVENT_DEPRECATED\"] = 3] = \"SENSOR_EVENT_DEPRECATED\";\n Event_Which[Event_Which[\"CAN\"] = 4] = \"CAN\";\n Event_Which[Event_Which[\"THERMAL\"] = 5] = \"THERMAL\";\n Event_Which[Event_Which[\"CONTROLS_STATE\"] = 6] = \"CONTROLS_STATE\";\n Event_Which[Event_Which[\"LIVE_EVENT_DEPRECATED\"] = 7] = \"LIVE_EVENT_DEPRECATED\";\n Event_Which[Event_Which[\"MODEL\"] = 8] = \"MODEL\";\n Event_Which[Event_Which[\"FEATURES\"] = 9] = \"FEATURES\";\n Event_Which[Event_Which[\"SENSOR_EVENTS\"] = 10] = \"SENSOR_EVENTS\";\n Event_Which[Event_Which[\"HEALTH\"] = 11] = \"HEALTH\";\n Event_Which[Event_Which[\"RADAR_STATE\"] = 12] = \"RADAR_STATE\";\n Event_Which[Event_Which[\"LIVE_UIDEPRECATED\"] = 13] = \"LIVE_UIDEPRECATED\";\n Event_Which[Event_Which[\"ENCODE_IDX\"] = 14] = \"ENCODE_IDX\";\n Event_Which[Event_Which[\"LIVE_TRACKS\"] = 15] = \"LIVE_TRACKS\";\n Event_Which[Event_Which[\"SENDCAN\"] = 16] = \"SENDCAN\";\n Event_Which[Event_Which[\"LOG_MESSAGE\"] = 17] = \"LOG_MESSAGE\";\n Event_Which[Event_Which[\"LIVE_CALIBRATION\"] = 18] = \"LIVE_CALIBRATION\";\n Event_Which[Event_Which[\"ANDROID_LOG_ENTRY\"] = 19] = \"ANDROID_LOG_ENTRY\";\n Event_Which[Event_Which[\"GPS_LOCATION\"] = 20] = \"GPS_LOCATION\";\n Event_Which[Event_Which[\"CAR_STATE\"] = 21] = \"CAR_STATE\";\n Event_Which[Event_Which[\"CAR_CONTROL\"] = 22] = \"CAR_CONTROL\";\n Event_Which[Event_Which[\"PLAN\"] = 23] = \"PLAN\";\n Event_Which[Event_Which[\"LIVE_LOCATION\"] = 24] = \"LIVE_LOCATION\";\n Event_Which[Event_Which[\"ETHERNET_DATA\"] = 25] = \"ETHERNET_DATA\";\n Event_Which[Event_Which[\"NAV_UPDATE\"] = 26] = \"NAV_UPDATE\";\n Event_Which[Event_Which[\"CELL_INFO\"] = 27] = \"CELL_INFO\";\n Event_Which[Event_Which[\"WIFI_SCAN\"] = 28] = \"WIFI_SCAN\";\n Event_Which[Event_Which[\"ANDROID_GNSS\"] = 29] = \"ANDROID_GNSS\";\n Event_Which[Event_Which[\"QCOM_GNSS\"] = 30] = \"QCOM_GNSS\";\n Event_Which[Event_Which[\"LIDAR_PTS\"] = 31] = \"LIDAR_PTS\";\n Event_Which[Event_Which[\"PROC_LOG\"] = 32] = \"PROC_LOG\";\n Event_Which[Event_Which[\"UBLOX_GNSS\"] = 33] = \"UBLOX_GNSS\";\n Event_Which[Event_Which[\"CLOCKS\"] = 34] = \"CLOCKS\";\n Event_Which[Event_Which[\"LIVE_MPC\"] = 35] = \"LIVE_MPC\";\n Event_Which[Event_Which[\"LIVE_LONGITUDINAL_MPC\"] = 36] = \"LIVE_LONGITUDINAL_MPC\";\n Event_Which[Event_Which[\"NAV_STATUS\"] = 37] = \"NAV_STATUS\";\n Event_Which[Event_Which[\"UBLOX_RAW\"] = 38] = \"UBLOX_RAW\";\n Event_Which[Event_Which[\"GPS_PLANNER_POINTS\"] = 39] = \"GPS_PLANNER_POINTS\";\n Event_Which[Event_Which[\"GPS_PLANNER_PLAN\"] = 40] = \"GPS_PLANNER_PLAN\";\n Event_Which[Event_Which[\"APPLANIX_RAW\"] = 41] = \"APPLANIX_RAW\";\n Event_Which[Event_Which[\"TRAFFIC_EVENTS\"] = 42] = \"TRAFFIC_EVENTS\";\n Event_Which[Event_Which[\"LIVE_LOCATION_TIMING\"] = 43] = \"LIVE_LOCATION_TIMING\";\n Event_Which[Event_Which[\"ORBSLAM_CORRECTION_DEPRECATED\"] = 44] = \"ORBSLAM_CORRECTION_DEPRECATED\";\n Event_Which[Event_Which[\"LIVE_LOCATION_CORRECTED\"] = 45] = \"LIVE_LOCATION_CORRECTED\";\n Event_Which[Event_Which[\"ORB_OBSERVATION\"] = 46] = \"ORB_OBSERVATION\";\n Event_Which[Event_Which[\"GPS_LOCATION_EXTERNAL\"] = 47] = \"GPS_LOCATION_EXTERNAL\";\n Event_Which[Event_Which[\"LOCATION\"] = 48] = \"LOCATION\";\n Event_Which[Event_Which[\"UI_NAVIGATION_EVENT\"] = 49] = \"UI_NAVIGATION_EVENT\";\n Event_Which[Event_Which[\"LIVE_LOCATION_KALMAN\"] = 50] = \"LIVE_LOCATION_KALMAN\";\n Event_Which[Event_Which[\"TEST_JOYSTICK\"] = 51] = \"TEST_JOYSTICK\";\n Event_Which[Event_Which[\"ORB_ODOMETRY\"] = 52] = \"ORB_ODOMETRY\";\n Event_Which[Event_Which[\"ORB_FEATURES\"] = 53] = \"ORB_FEATURES\";\n Event_Which[Event_Which[\"APPLANIX_LOCATION\"] = 54] = \"APPLANIX_LOCATION\";\n Event_Which[Event_Which[\"ORB_KEY_FRAME\"] = 55] = \"ORB_KEY_FRAME\";\n Event_Which[Event_Which[\"UI_LAYOUT_STATE\"] = 56] = \"UI_LAYOUT_STATE\";\n Event_Which[Event_Which[\"ORB_FEATURES_SUMMARY\"] = 57] = \"ORB_FEATURES_SUMMARY\";\n Event_Which[Event_Which[\"DRIVER_MONITORING\"] = 58] = \"DRIVER_MONITORING\";\n Event_Which[Event_Which[\"BOOT\"] = 59] = \"BOOT\";\n Event_Which[Event_Which[\"LIVE_PARAMETERS\"] = 60] = \"LIVE_PARAMETERS\";\n Event_Which[Event_Which[\"LIVE_MAP_DATA\"] = 61] = \"LIVE_MAP_DATA\";\n Event_Which[Event_Which[\"CAMERA_ODOMETRY\"] = 62] = \"CAMERA_ODOMETRY\";\n Event_Which[Event_Which[\"PATH_PLAN\"] = 63] = \"PATH_PLAN\";\n Event_Which[Event_Which[\"KALMAN_ODOMETRY\"] = 64] = \"KALMAN_ODOMETRY\";\n Event_Which[Event_Which[\"THUMBNAIL\"] = 65] = \"THUMBNAIL\";\n Event_Which[Event_Which[\"CAR_EVENTS\"] = 66] = \"CAR_EVENTS\";\n Event_Which[Event_Which[\"CAR_PARAMS\"] = 67] = \"CAR_PARAMS\";\n})(Event_Which = exports.Event_Which || (exports.Event_Which = {}));\n\nvar Event =\n/** @class */\nfunction (_super) {\n __extends(Event, _super);\n\n function Event() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n Event.prototype.getLogMonoTime = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n Event.prototype.setLogMonoTime = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n Event.prototype.getValid = function () {\n return capnp_ts_1.Struct.getBit(80, this, Event._capnp.defaultValid);\n };\n\n Event.prototype.setValid = function (value) {\n capnp_ts_1.Struct.setBit(80, value, this);\n };\n\n Event.prototype.adoptInitData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownInitData = function () {\n return capnp_ts_1.Struct.disown(this.getInitData());\n };\n\n Event.prototype.getInitData = function () {\n capnp_ts_1.Struct.testWhich(\"initData\", capnp_ts_1.Struct.getUint16(8, this), 0, this);\n return capnp_ts_1.Struct.getStruct(0, InitData, this);\n };\n\n Event.prototype.hasInitData = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initInitData = function () {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n return capnp_ts_1.Struct.initStructAt(0, InitData, this);\n };\n\n Event.prototype.isInitData = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 0;\n };\n\n Event.prototype.setInitData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptFrame = function (value) {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownFrame = function () {\n return capnp_ts_1.Struct.disown(this.getFrame());\n };\n\n Event.prototype.getFrame = function () {\n capnp_ts_1.Struct.testWhich(\"frame\", capnp_ts_1.Struct.getUint16(8, this), 1, this);\n return capnp_ts_1.Struct.getStruct(0, FrameData, this);\n };\n\n Event.prototype.hasFrame = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initFrame = function () {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n return capnp_ts_1.Struct.initStructAt(0, FrameData, this);\n };\n\n Event.prototype.isFrame = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 1;\n };\n\n Event.prototype.setFrame = function (value) {\n capnp_ts_1.Struct.setUint16(8, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptGpsNMEA = function (value) {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownGpsNMEA = function () {\n return capnp_ts_1.Struct.disown(this.getGpsNMEA());\n };\n\n Event.prototype.getGpsNMEA = function () {\n capnp_ts_1.Struct.testWhich(\"gpsNMEA\", capnp_ts_1.Struct.getUint16(8, this), 2, this);\n return capnp_ts_1.Struct.getStruct(0, GPSNMEAData, this);\n };\n\n Event.prototype.hasGpsNMEA = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initGpsNMEA = function () {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n return capnp_ts_1.Struct.initStructAt(0, GPSNMEAData, this);\n };\n\n Event.prototype.isGpsNMEA = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 2;\n };\n\n Event.prototype.setGpsNMEA = function (value) {\n capnp_ts_1.Struct.setUint16(8, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptSensorEventDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownSensorEventDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getSensorEventDEPRECATED());\n };\n\n Event.prototype.getSensorEventDEPRECATED = function () {\n capnp_ts_1.Struct.testWhich(\"sensorEventDEPRECATED\", capnp_ts_1.Struct.getUint16(8, this), 3, this);\n return capnp_ts_1.Struct.getStruct(0, SensorEventData, this);\n };\n\n Event.prototype.hasSensorEventDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initSensorEventDEPRECATED = function () {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n return capnp_ts_1.Struct.initStructAt(0, SensorEventData, this);\n };\n\n Event.prototype.isSensorEventDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 3;\n };\n\n Event.prototype.setSensorEventDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 3, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCan = function () {\n return capnp_ts_1.Struct.disown(this.getCan());\n };\n\n Event.prototype.getCan = function () {\n capnp_ts_1.Struct.testWhich(\"can\", capnp_ts_1.Struct.getUint16(8, this), 4, this);\n return capnp_ts_1.Struct.getList(0, Event._Can, this);\n };\n\n Event.prototype.hasCan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCan = function (length) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n return capnp_ts_1.Struct.initList(0, Event._Can, length, this);\n };\n\n Event.prototype.isCan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 4;\n };\n\n Event.prototype.setCan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 4, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptThermal = function (value) {\n capnp_ts_1.Struct.setUint16(8, 5, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownThermal = function () {\n return capnp_ts_1.Struct.disown(this.getThermal());\n };\n\n Event.prototype.getThermal = function () {\n capnp_ts_1.Struct.testWhich(\"thermal\", capnp_ts_1.Struct.getUint16(8, this), 5, this);\n return capnp_ts_1.Struct.getStruct(0, ThermalData, this);\n };\n\n Event.prototype.hasThermal = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initThermal = function () {\n capnp_ts_1.Struct.setUint16(8, 5, this);\n return capnp_ts_1.Struct.initStructAt(0, ThermalData, this);\n };\n\n Event.prototype.isThermal = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 5;\n };\n\n Event.prototype.setThermal = function (value) {\n capnp_ts_1.Struct.setUint16(8, 5, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptControlsState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 6, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownControlsState = function () {\n return capnp_ts_1.Struct.disown(this.getControlsState());\n };\n\n Event.prototype.getControlsState = function () {\n capnp_ts_1.Struct.testWhich(\"controlsState\", capnp_ts_1.Struct.getUint16(8, this), 6, this);\n return capnp_ts_1.Struct.getStruct(0, ControlsState, this);\n };\n\n Event.prototype.hasControlsState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initControlsState = function () {\n capnp_ts_1.Struct.setUint16(8, 6, this);\n return capnp_ts_1.Struct.initStructAt(0, ControlsState, this);\n };\n\n Event.prototype.isControlsState = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 6;\n };\n\n Event.prototype.setControlsState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 6, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveEventDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 7, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveEventDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getLiveEventDEPRECATED());\n };\n\n Event.prototype.getLiveEventDEPRECATED = function () {\n capnp_ts_1.Struct.testWhich(\"liveEventDEPRECATED\", capnp_ts_1.Struct.getUint16(8, this), 7, this);\n return capnp_ts_1.Struct.getList(0, Event._LiveEventDEPRECATED, this);\n };\n\n Event.prototype.hasLiveEventDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveEventDEPRECATED = function (length) {\n capnp_ts_1.Struct.setUint16(8, 7, this);\n return capnp_ts_1.Struct.initList(0, Event._LiveEventDEPRECATED, length, this);\n };\n\n Event.prototype.isLiveEventDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 7;\n };\n\n Event.prototype.setLiveEventDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 7, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptModel = function (value) {\n capnp_ts_1.Struct.setUint16(8, 8, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownModel = function () {\n return capnp_ts_1.Struct.disown(this.getModel());\n };\n\n Event.prototype.getModel = function () {\n capnp_ts_1.Struct.testWhich(\"model\", capnp_ts_1.Struct.getUint16(8, this), 8, this);\n return capnp_ts_1.Struct.getStruct(0, ModelData, this);\n };\n\n Event.prototype.hasModel = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initModel = function () {\n capnp_ts_1.Struct.setUint16(8, 8, this);\n return capnp_ts_1.Struct.initStructAt(0, ModelData, this);\n };\n\n Event.prototype.isModel = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 8;\n };\n\n Event.prototype.setModel = function (value) {\n capnp_ts_1.Struct.setUint16(8, 8, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptFeatures = function (value) {\n capnp_ts_1.Struct.setUint16(8, 9, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownFeatures = function () {\n return capnp_ts_1.Struct.disown(this.getFeatures());\n };\n\n Event.prototype.getFeatures = function () {\n capnp_ts_1.Struct.testWhich(\"features\", capnp_ts_1.Struct.getUint16(8, this), 9, this);\n return capnp_ts_1.Struct.getStruct(0, CalibrationFeatures, this);\n };\n\n Event.prototype.hasFeatures = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initFeatures = function () {\n capnp_ts_1.Struct.setUint16(8, 9, this);\n return capnp_ts_1.Struct.initStructAt(0, CalibrationFeatures, this);\n };\n\n Event.prototype.isFeatures = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 9;\n };\n\n Event.prototype.setFeatures = function (value) {\n capnp_ts_1.Struct.setUint16(8, 9, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptSensorEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 10, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownSensorEvents = function () {\n return capnp_ts_1.Struct.disown(this.getSensorEvents());\n };\n\n Event.prototype.getSensorEvents = function () {\n capnp_ts_1.Struct.testWhich(\"sensorEvents\", capnp_ts_1.Struct.getUint16(8, this), 10, this);\n return capnp_ts_1.Struct.getList(0, Event._SensorEvents, this);\n };\n\n Event.prototype.hasSensorEvents = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initSensorEvents = function (length) {\n capnp_ts_1.Struct.setUint16(8, 10, this);\n return capnp_ts_1.Struct.initList(0, Event._SensorEvents, length, this);\n };\n\n Event.prototype.isSensorEvents = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 10;\n };\n\n Event.prototype.setSensorEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 10, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptHealth = function (value) {\n capnp_ts_1.Struct.setUint16(8, 11, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownHealth = function () {\n return capnp_ts_1.Struct.disown(this.getHealth());\n };\n\n Event.prototype.getHealth = function () {\n capnp_ts_1.Struct.testWhich(\"health\", capnp_ts_1.Struct.getUint16(8, this), 11, this);\n return capnp_ts_1.Struct.getStruct(0, HealthData, this);\n };\n\n Event.prototype.hasHealth = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initHealth = function () {\n capnp_ts_1.Struct.setUint16(8, 11, this);\n return capnp_ts_1.Struct.initStructAt(0, HealthData, this);\n };\n\n Event.prototype.isHealth = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 11;\n };\n\n Event.prototype.setHealth = function (value) {\n capnp_ts_1.Struct.setUint16(8, 11, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptRadarState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 12, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownRadarState = function () {\n return capnp_ts_1.Struct.disown(this.getRadarState());\n };\n\n Event.prototype.getRadarState = function () {\n capnp_ts_1.Struct.testWhich(\"radarState\", capnp_ts_1.Struct.getUint16(8, this), 12, this);\n return capnp_ts_1.Struct.getStruct(0, RadarState, this);\n };\n\n Event.prototype.hasRadarState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initRadarState = function () {\n capnp_ts_1.Struct.setUint16(8, 12, this);\n return capnp_ts_1.Struct.initStructAt(0, RadarState, this);\n };\n\n Event.prototype.isRadarState = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 12;\n };\n\n Event.prototype.setRadarState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 12, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveUIDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 13, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveUIDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getLiveUIDEPRECATED());\n };\n\n Event.prototype.getLiveUIDEPRECATED = function () {\n capnp_ts_1.Struct.testWhich(\"liveUIDEPRECATED\", capnp_ts_1.Struct.getUint16(8, this), 13, this);\n return capnp_ts_1.Struct.getStruct(0, LiveUI, this);\n };\n\n Event.prototype.hasLiveUIDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveUIDEPRECATED = function () {\n capnp_ts_1.Struct.setUint16(8, 13, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveUI, this);\n };\n\n Event.prototype.isLiveUIDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 13;\n };\n\n Event.prototype.setLiveUIDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 13, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptEncodeIdx = function (value) {\n capnp_ts_1.Struct.setUint16(8, 14, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownEncodeIdx = function () {\n return capnp_ts_1.Struct.disown(this.getEncodeIdx());\n };\n\n Event.prototype.getEncodeIdx = function () {\n capnp_ts_1.Struct.testWhich(\"encodeIdx\", capnp_ts_1.Struct.getUint16(8, this), 14, this);\n return capnp_ts_1.Struct.getStruct(0, EncodeIndex, this);\n };\n\n Event.prototype.hasEncodeIdx = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initEncodeIdx = function () {\n capnp_ts_1.Struct.setUint16(8, 14, this);\n return capnp_ts_1.Struct.initStructAt(0, EncodeIndex, this);\n };\n\n Event.prototype.isEncodeIdx = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 14;\n };\n\n Event.prototype.setEncodeIdx = function (value) {\n capnp_ts_1.Struct.setUint16(8, 14, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveTracks = function (value) {\n capnp_ts_1.Struct.setUint16(8, 15, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveTracks = function () {\n return capnp_ts_1.Struct.disown(this.getLiveTracks());\n };\n\n Event.prototype.getLiveTracks = function () {\n capnp_ts_1.Struct.testWhich(\"liveTracks\", capnp_ts_1.Struct.getUint16(8, this), 15, this);\n return capnp_ts_1.Struct.getList(0, Event._LiveTracks, this);\n };\n\n Event.prototype.hasLiveTracks = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveTracks = function (length) {\n capnp_ts_1.Struct.setUint16(8, 15, this);\n return capnp_ts_1.Struct.initList(0, Event._LiveTracks, length, this);\n };\n\n Event.prototype.isLiveTracks = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 15;\n };\n\n Event.prototype.setLiveTracks = function (value) {\n capnp_ts_1.Struct.setUint16(8, 15, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptSendcan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 16, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownSendcan = function () {\n return capnp_ts_1.Struct.disown(this.getSendcan());\n };\n\n Event.prototype.getSendcan = function () {\n capnp_ts_1.Struct.testWhich(\"sendcan\", capnp_ts_1.Struct.getUint16(8, this), 16, this);\n return capnp_ts_1.Struct.getList(0, Event._Sendcan, this);\n };\n\n Event.prototype.hasSendcan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initSendcan = function (length) {\n capnp_ts_1.Struct.setUint16(8, 16, this);\n return capnp_ts_1.Struct.initList(0, Event._Sendcan, length, this);\n };\n\n Event.prototype.isSendcan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 16;\n };\n\n Event.prototype.setSendcan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 16, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.getLogMessage = function () {\n capnp_ts_1.Struct.testWhich(\"logMessage\", capnp_ts_1.Struct.getUint16(8, this), 17, this);\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n Event.prototype.isLogMessage = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 17;\n };\n\n Event.prototype.setLogMessage = function (value) {\n capnp_ts_1.Struct.setUint16(8, 17, this);\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n Event.prototype.adoptLiveCalibration = function (value) {\n capnp_ts_1.Struct.setUint16(8, 18, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveCalibration = function () {\n return capnp_ts_1.Struct.disown(this.getLiveCalibration());\n };\n\n Event.prototype.getLiveCalibration = function () {\n capnp_ts_1.Struct.testWhich(\"liveCalibration\", capnp_ts_1.Struct.getUint16(8, this), 18, this);\n return capnp_ts_1.Struct.getStruct(0, LiveCalibrationData, this);\n };\n\n Event.prototype.hasLiveCalibration = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveCalibration = function () {\n capnp_ts_1.Struct.setUint16(8, 18, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveCalibrationData, this);\n };\n\n Event.prototype.isLiveCalibration = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 18;\n };\n\n Event.prototype.setLiveCalibration = function (value) {\n capnp_ts_1.Struct.setUint16(8, 18, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptAndroidLogEntry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 19, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownAndroidLogEntry = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidLogEntry());\n };\n\n Event.prototype.getAndroidLogEntry = function () {\n capnp_ts_1.Struct.testWhich(\"androidLogEntry\", capnp_ts_1.Struct.getUint16(8, this), 19, this);\n return capnp_ts_1.Struct.getStruct(0, AndroidLogEntry, this);\n };\n\n Event.prototype.hasAndroidLogEntry = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initAndroidLogEntry = function () {\n capnp_ts_1.Struct.setUint16(8, 19, this);\n return capnp_ts_1.Struct.initStructAt(0, AndroidLogEntry, this);\n };\n\n Event.prototype.isAndroidLogEntry = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 19;\n };\n\n Event.prototype.setAndroidLogEntry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 19, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptGpsLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 20, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownGpsLocation = function () {\n return capnp_ts_1.Struct.disown(this.getGpsLocation());\n };\n\n Event.prototype.getGpsLocation = function () {\n capnp_ts_1.Struct.testWhich(\"gpsLocation\", capnp_ts_1.Struct.getUint16(8, this), 20, this);\n return capnp_ts_1.Struct.getStruct(0, GpsLocationData, this);\n };\n\n Event.prototype.hasGpsLocation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initGpsLocation = function () {\n capnp_ts_1.Struct.setUint16(8, 20, this);\n return capnp_ts_1.Struct.initStructAt(0, GpsLocationData, this);\n };\n\n Event.prototype.isGpsLocation = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 20;\n };\n\n Event.prototype.setGpsLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 20, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCarState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 21, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCarState = function () {\n return capnp_ts_1.Struct.disown(this.getCarState());\n };\n\n Event.prototype.getCarState = function () {\n capnp_ts_1.Struct.testWhich(\"carState\", capnp_ts_1.Struct.getUint16(8, this), 21, this);\n return capnp_ts_1.Struct.getStruct(0, car_capnp_1.CarState, this);\n };\n\n Event.prototype.hasCarState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCarState = function () {\n capnp_ts_1.Struct.setUint16(8, 21, this);\n return capnp_ts_1.Struct.initStructAt(0, car_capnp_1.CarState, this);\n };\n\n Event.prototype.isCarState = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 21;\n };\n\n Event.prototype.setCarState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 21, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCarControl = function (value) {\n capnp_ts_1.Struct.setUint16(8, 22, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCarControl = function () {\n return capnp_ts_1.Struct.disown(this.getCarControl());\n };\n\n Event.prototype.getCarControl = function () {\n capnp_ts_1.Struct.testWhich(\"carControl\", capnp_ts_1.Struct.getUint16(8, this), 22, this);\n return capnp_ts_1.Struct.getStruct(0, car_capnp_1.CarControl, this);\n };\n\n Event.prototype.hasCarControl = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCarControl = function () {\n capnp_ts_1.Struct.setUint16(8, 22, this);\n return capnp_ts_1.Struct.initStructAt(0, car_capnp_1.CarControl, this);\n };\n\n Event.prototype.isCarControl = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 22;\n };\n\n Event.prototype.setCarControl = function (value) {\n capnp_ts_1.Struct.setUint16(8, 22, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 23, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownPlan = function () {\n return capnp_ts_1.Struct.disown(this.getPlan());\n };\n\n Event.prototype.getPlan = function () {\n capnp_ts_1.Struct.testWhich(\"plan\", capnp_ts_1.Struct.getUint16(8, this), 23, this);\n return capnp_ts_1.Struct.getStruct(0, Plan, this);\n };\n\n Event.prototype.hasPlan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initPlan = function () {\n capnp_ts_1.Struct.setUint16(8, 23, this);\n return capnp_ts_1.Struct.initStructAt(0, Plan, this);\n };\n\n Event.prototype.isPlan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 23;\n };\n\n Event.prototype.setPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 23, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 24, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveLocation = function () {\n return capnp_ts_1.Struct.disown(this.getLiveLocation());\n };\n\n Event.prototype.getLiveLocation = function () {\n capnp_ts_1.Struct.testWhich(\"liveLocation\", capnp_ts_1.Struct.getUint16(8, this), 24, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasLiveLocation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveLocation = function () {\n capnp_ts_1.Struct.setUint16(8, 24, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isLiveLocation = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 24;\n };\n\n Event.prototype.setLiveLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 24, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptEthernetData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 25, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownEthernetData = function () {\n return capnp_ts_1.Struct.disown(this.getEthernetData());\n };\n\n Event.prototype.getEthernetData = function () {\n capnp_ts_1.Struct.testWhich(\"ethernetData\", capnp_ts_1.Struct.getUint16(8, this), 25, this);\n return capnp_ts_1.Struct.getList(0, Event._EthernetData, this);\n };\n\n Event.prototype.hasEthernetData = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initEthernetData = function (length) {\n capnp_ts_1.Struct.setUint16(8, 25, this);\n return capnp_ts_1.Struct.initList(0, Event._EthernetData, length, this);\n };\n\n Event.prototype.isEthernetData = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 25;\n };\n\n Event.prototype.setEthernetData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 25, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptNavUpdate = function (value) {\n capnp_ts_1.Struct.setUint16(8, 26, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownNavUpdate = function () {\n return capnp_ts_1.Struct.disown(this.getNavUpdate());\n };\n\n Event.prototype.getNavUpdate = function () {\n capnp_ts_1.Struct.testWhich(\"navUpdate\", capnp_ts_1.Struct.getUint16(8, this), 26, this);\n return capnp_ts_1.Struct.getStruct(0, NavUpdate, this);\n };\n\n Event.prototype.hasNavUpdate = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initNavUpdate = function () {\n capnp_ts_1.Struct.setUint16(8, 26, this);\n return capnp_ts_1.Struct.initStructAt(0, NavUpdate, this);\n };\n\n Event.prototype.isNavUpdate = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 26;\n };\n\n Event.prototype.setNavUpdate = function (value) {\n capnp_ts_1.Struct.setUint16(8, 26, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCellInfo = function (value) {\n capnp_ts_1.Struct.setUint16(8, 27, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCellInfo = function () {\n return capnp_ts_1.Struct.disown(this.getCellInfo());\n };\n\n Event.prototype.getCellInfo = function () {\n capnp_ts_1.Struct.testWhich(\"cellInfo\", capnp_ts_1.Struct.getUint16(8, this), 27, this);\n return capnp_ts_1.Struct.getList(0, Event._CellInfo, this);\n };\n\n Event.prototype.hasCellInfo = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCellInfo = function (length) {\n capnp_ts_1.Struct.setUint16(8, 27, this);\n return capnp_ts_1.Struct.initList(0, Event._CellInfo, length, this);\n };\n\n Event.prototype.isCellInfo = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 27;\n };\n\n Event.prototype.setCellInfo = function (value) {\n capnp_ts_1.Struct.setUint16(8, 27, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptWifiScan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 28, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownWifiScan = function () {\n return capnp_ts_1.Struct.disown(this.getWifiScan());\n };\n\n Event.prototype.getWifiScan = function () {\n capnp_ts_1.Struct.testWhich(\"wifiScan\", capnp_ts_1.Struct.getUint16(8, this), 28, this);\n return capnp_ts_1.Struct.getList(0, Event._WifiScan, this);\n };\n\n Event.prototype.hasWifiScan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initWifiScan = function (length) {\n capnp_ts_1.Struct.setUint16(8, 28, this);\n return capnp_ts_1.Struct.initList(0, Event._WifiScan, length, this);\n };\n\n Event.prototype.isWifiScan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 28;\n };\n\n Event.prototype.setWifiScan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 28, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptAndroidGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 29, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownAndroidGnss = function () {\n return capnp_ts_1.Struct.disown(this.getAndroidGnss());\n };\n\n Event.prototype.getAndroidGnss = function () {\n capnp_ts_1.Struct.testWhich(\"androidGnss\", capnp_ts_1.Struct.getUint16(8, this), 29, this);\n return capnp_ts_1.Struct.getStruct(0, AndroidGnss, this);\n };\n\n Event.prototype.hasAndroidGnss = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initAndroidGnss = function () {\n capnp_ts_1.Struct.setUint16(8, 29, this);\n return capnp_ts_1.Struct.initStructAt(0, AndroidGnss, this);\n };\n\n Event.prototype.isAndroidGnss = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 29;\n };\n\n Event.prototype.setAndroidGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 29, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptQcomGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 30, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownQcomGnss = function () {\n return capnp_ts_1.Struct.disown(this.getQcomGnss());\n };\n\n Event.prototype.getQcomGnss = function () {\n capnp_ts_1.Struct.testWhich(\"qcomGnss\", capnp_ts_1.Struct.getUint16(8, this), 30, this);\n return capnp_ts_1.Struct.getStruct(0, QcomGnss, this);\n };\n\n Event.prototype.hasQcomGnss = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initQcomGnss = function () {\n capnp_ts_1.Struct.setUint16(8, 30, this);\n return capnp_ts_1.Struct.initStructAt(0, QcomGnss, this);\n };\n\n Event.prototype.isQcomGnss = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 30;\n };\n\n Event.prototype.setQcomGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 30, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLidarPts = function (value) {\n capnp_ts_1.Struct.setUint16(8, 31, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLidarPts = function () {\n return capnp_ts_1.Struct.disown(this.getLidarPts());\n };\n\n Event.prototype.getLidarPts = function () {\n capnp_ts_1.Struct.testWhich(\"lidarPts\", capnp_ts_1.Struct.getUint16(8, this), 31, this);\n return capnp_ts_1.Struct.getStruct(0, LidarPts, this);\n };\n\n Event.prototype.hasLidarPts = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLidarPts = function () {\n capnp_ts_1.Struct.setUint16(8, 31, this);\n return capnp_ts_1.Struct.initStructAt(0, LidarPts, this);\n };\n\n Event.prototype.isLidarPts = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 31;\n };\n\n Event.prototype.setLidarPts = function (value) {\n capnp_ts_1.Struct.setUint16(8, 31, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptProcLog = function (value) {\n capnp_ts_1.Struct.setUint16(8, 32, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownProcLog = function () {\n return capnp_ts_1.Struct.disown(this.getProcLog());\n };\n\n Event.prototype.getProcLog = function () {\n capnp_ts_1.Struct.testWhich(\"procLog\", capnp_ts_1.Struct.getUint16(8, this), 32, this);\n return capnp_ts_1.Struct.getStruct(0, ProcLog, this);\n };\n\n Event.prototype.hasProcLog = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initProcLog = function () {\n capnp_ts_1.Struct.setUint16(8, 32, this);\n return capnp_ts_1.Struct.initStructAt(0, ProcLog, this);\n };\n\n Event.prototype.isProcLog = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 32;\n };\n\n Event.prototype.setProcLog = function (value) {\n capnp_ts_1.Struct.setUint16(8, 32, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptUbloxGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 33, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownUbloxGnss = function () {\n return capnp_ts_1.Struct.disown(this.getUbloxGnss());\n };\n\n Event.prototype.getUbloxGnss = function () {\n capnp_ts_1.Struct.testWhich(\"ubloxGnss\", capnp_ts_1.Struct.getUint16(8, this), 33, this);\n return capnp_ts_1.Struct.getStruct(0, UbloxGnss, this);\n };\n\n Event.prototype.hasUbloxGnss = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initUbloxGnss = function () {\n capnp_ts_1.Struct.setUint16(8, 33, this);\n return capnp_ts_1.Struct.initStructAt(0, UbloxGnss, this);\n };\n\n Event.prototype.isUbloxGnss = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 33;\n };\n\n Event.prototype.setUbloxGnss = function (value) {\n capnp_ts_1.Struct.setUint16(8, 33, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptClocks = function (value) {\n capnp_ts_1.Struct.setUint16(8, 34, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownClocks = function () {\n return capnp_ts_1.Struct.disown(this.getClocks());\n };\n\n Event.prototype.getClocks = function () {\n capnp_ts_1.Struct.testWhich(\"clocks\", capnp_ts_1.Struct.getUint16(8, this), 34, this);\n return capnp_ts_1.Struct.getStruct(0, Clocks, this);\n };\n\n Event.prototype.hasClocks = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initClocks = function () {\n capnp_ts_1.Struct.setUint16(8, 34, this);\n return capnp_ts_1.Struct.initStructAt(0, Clocks, this);\n };\n\n Event.prototype.isClocks = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 34;\n };\n\n Event.prototype.setClocks = function (value) {\n capnp_ts_1.Struct.setUint16(8, 34, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveMpc = function (value) {\n capnp_ts_1.Struct.setUint16(8, 35, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveMpc = function () {\n return capnp_ts_1.Struct.disown(this.getLiveMpc());\n };\n\n Event.prototype.getLiveMpc = function () {\n capnp_ts_1.Struct.testWhich(\"liveMpc\", capnp_ts_1.Struct.getUint16(8, this), 35, this);\n return capnp_ts_1.Struct.getStruct(0, LiveMpcData, this);\n };\n\n Event.prototype.hasLiveMpc = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveMpc = function () {\n capnp_ts_1.Struct.setUint16(8, 35, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveMpcData, this);\n };\n\n Event.prototype.isLiveMpc = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 35;\n };\n\n Event.prototype.setLiveMpc = function (value) {\n capnp_ts_1.Struct.setUint16(8, 35, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveLongitudinalMpc = function (value) {\n capnp_ts_1.Struct.setUint16(8, 36, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveLongitudinalMpc = function () {\n return capnp_ts_1.Struct.disown(this.getLiveLongitudinalMpc());\n };\n\n Event.prototype.getLiveLongitudinalMpc = function () {\n capnp_ts_1.Struct.testWhich(\"liveLongitudinalMpc\", capnp_ts_1.Struct.getUint16(8, this), 36, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLongitudinalMpcData, this);\n };\n\n Event.prototype.hasLiveLongitudinalMpc = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveLongitudinalMpc = function () {\n capnp_ts_1.Struct.setUint16(8, 36, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLongitudinalMpcData, this);\n };\n\n Event.prototype.isLiveLongitudinalMpc = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 36;\n };\n\n Event.prototype.setLiveLongitudinalMpc = function (value) {\n capnp_ts_1.Struct.setUint16(8, 36, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptNavStatus = function (value) {\n capnp_ts_1.Struct.setUint16(8, 37, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownNavStatus = function () {\n return capnp_ts_1.Struct.disown(this.getNavStatus());\n };\n\n Event.prototype.getNavStatus = function () {\n capnp_ts_1.Struct.testWhich(\"navStatus\", capnp_ts_1.Struct.getUint16(8, this), 37, this);\n return capnp_ts_1.Struct.getStruct(0, NavStatus, this);\n };\n\n Event.prototype.hasNavStatus = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initNavStatus = function () {\n capnp_ts_1.Struct.setUint16(8, 37, this);\n return capnp_ts_1.Struct.initStructAt(0, NavStatus, this);\n };\n\n Event.prototype.isNavStatus = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 37;\n };\n\n Event.prototype.setNavStatus = function (value) {\n capnp_ts_1.Struct.setUint16(8, 37, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptUbloxRaw = function (value) {\n capnp_ts_1.Struct.setUint16(8, 38, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownUbloxRaw = function () {\n return capnp_ts_1.Struct.disown(this.getUbloxRaw());\n };\n\n Event.prototype.getUbloxRaw = function () {\n capnp_ts_1.Struct.testWhich(\"ubloxRaw\", capnp_ts_1.Struct.getUint16(8, this), 38, this);\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n Event.prototype.hasUbloxRaw = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initUbloxRaw = function (length) {\n capnp_ts_1.Struct.setUint16(8, 38, this);\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n Event.prototype.isUbloxRaw = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 38;\n };\n\n Event.prototype.setUbloxRaw = function (value) {\n capnp_ts_1.Struct.setUint16(8, 38, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptGpsPlannerPoints = function (value) {\n capnp_ts_1.Struct.setUint16(8, 39, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownGpsPlannerPoints = function () {\n return capnp_ts_1.Struct.disown(this.getGpsPlannerPoints());\n };\n\n Event.prototype.getGpsPlannerPoints = function () {\n capnp_ts_1.Struct.testWhich(\"gpsPlannerPoints\", capnp_ts_1.Struct.getUint16(8, this), 39, this);\n return capnp_ts_1.Struct.getStruct(0, GPSPlannerPoints, this);\n };\n\n Event.prototype.hasGpsPlannerPoints = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initGpsPlannerPoints = function () {\n capnp_ts_1.Struct.setUint16(8, 39, this);\n return capnp_ts_1.Struct.initStructAt(0, GPSPlannerPoints, this);\n };\n\n Event.prototype.isGpsPlannerPoints = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 39;\n };\n\n Event.prototype.setGpsPlannerPoints = function (value) {\n capnp_ts_1.Struct.setUint16(8, 39, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptGpsPlannerPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 40, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownGpsPlannerPlan = function () {\n return capnp_ts_1.Struct.disown(this.getGpsPlannerPlan());\n };\n\n Event.prototype.getGpsPlannerPlan = function () {\n capnp_ts_1.Struct.testWhich(\"gpsPlannerPlan\", capnp_ts_1.Struct.getUint16(8, this), 40, this);\n return capnp_ts_1.Struct.getStruct(0, GPSPlannerPlan, this);\n };\n\n Event.prototype.hasGpsPlannerPlan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initGpsPlannerPlan = function () {\n capnp_ts_1.Struct.setUint16(8, 40, this);\n return capnp_ts_1.Struct.initStructAt(0, GPSPlannerPlan, this);\n };\n\n Event.prototype.isGpsPlannerPlan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 40;\n };\n\n Event.prototype.setGpsPlannerPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 40, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptApplanixRaw = function (value) {\n capnp_ts_1.Struct.setUint16(8, 41, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownApplanixRaw = function () {\n return capnp_ts_1.Struct.disown(this.getApplanixRaw());\n };\n\n Event.prototype.getApplanixRaw = function () {\n capnp_ts_1.Struct.testWhich(\"applanixRaw\", capnp_ts_1.Struct.getUint16(8, this), 41, this);\n return capnp_ts_1.Struct.getData(0, this);\n };\n\n Event.prototype.hasApplanixRaw = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initApplanixRaw = function (length) {\n capnp_ts_1.Struct.setUint16(8, 41, this);\n return capnp_ts_1.Struct.initData(0, length, this);\n };\n\n Event.prototype.isApplanixRaw = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 41;\n };\n\n Event.prototype.setApplanixRaw = function (value) {\n capnp_ts_1.Struct.setUint16(8, 41, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptTrafficEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 42, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownTrafficEvents = function () {\n return capnp_ts_1.Struct.disown(this.getTrafficEvents());\n };\n\n Event.prototype.getTrafficEvents = function () {\n capnp_ts_1.Struct.testWhich(\"trafficEvents\", capnp_ts_1.Struct.getUint16(8, this), 42, this);\n return capnp_ts_1.Struct.getList(0, Event._TrafficEvents, this);\n };\n\n Event.prototype.hasTrafficEvents = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initTrafficEvents = function (length) {\n capnp_ts_1.Struct.setUint16(8, 42, this);\n return capnp_ts_1.Struct.initList(0, Event._TrafficEvents, length, this);\n };\n\n Event.prototype.isTrafficEvents = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 42;\n };\n\n Event.prototype.setTrafficEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 42, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveLocationTiming = function (value) {\n capnp_ts_1.Struct.setUint16(8, 43, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveLocationTiming = function () {\n return capnp_ts_1.Struct.disown(this.getLiveLocationTiming());\n };\n\n Event.prototype.getLiveLocationTiming = function () {\n capnp_ts_1.Struct.testWhich(\"liveLocationTiming\", capnp_ts_1.Struct.getUint16(8, this), 43, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasLiveLocationTiming = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveLocationTiming = function () {\n capnp_ts_1.Struct.setUint16(8, 43, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isLiveLocationTiming = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 43;\n };\n\n Event.prototype.setLiveLocationTiming = function (value) {\n capnp_ts_1.Struct.setUint16(8, 43, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbslamCorrectionDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 44, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbslamCorrectionDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getOrbslamCorrectionDEPRECATED());\n };\n\n Event.prototype.getOrbslamCorrectionDEPRECATED = function () {\n capnp_ts_1.Struct.testWhich(\"orbslamCorrectionDEPRECATED\", capnp_ts_1.Struct.getUint16(8, this), 44, this);\n return capnp_ts_1.Struct.getStruct(0, OrbslamCorrection, this);\n };\n\n Event.prototype.hasOrbslamCorrectionDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbslamCorrectionDEPRECATED = function () {\n capnp_ts_1.Struct.setUint16(8, 44, this);\n return capnp_ts_1.Struct.initStructAt(0, OrbslamCorrection, this);\n };\n\n Event.prototype.isOrbslamCorrectionDEPRECATED = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 44;\n };\n\n Event.prototype.setOrbslamCorrectionDEPRECATED = function (value) {\n capnp_ts_1.Struct.setUint16(8, 44, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveLocationCorrected = function (value) {\n capnp_ts_1.Struct.setUint16(8, 45, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveLocationCorrected = function () {\n return capnp_ts_1.Struct.disown(this.getLiveLocationCorrected());\n };\n\n Event.prototype.getLiveLocationCorrected = function () {\n capnp_ts_1.Struct.testWhich(\"liveLocationCorrected\", capnp_ts_1.Struct.getUint16(8, this), 45, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasLiveLocationCorrected = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveLocationCorrected = function () {\n capnp_ts_1.Struct.setUint16(8, 45, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isLiveLocationCorrected = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 45;\n };\n\n Event.prototype.setLiveLocationCorrected = function (value) {\n capnp_ts_1.Struct.setUint16(8, 45, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbObservation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 46, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbObservation = function () {\n return capnp_ts_1.Struct.disown(this.getOrbObservation());\n };\n\n Event.prototype.getOrbObservation = function () {\n capnp_ts_1.Struct.testWhich(\"orbObservation\", capnp_ts_1.Struct.getUint16(8, this), 46, this);\n return capnp_ts_1.Struct.getList(0, Event._OrbObservation, this);\n };\n\n Event.prototype.hasOrbObservation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbObservation = function (length) {\n capnp_ts_1.Struct.setUint16(8, 46, this);\n return capnp_ts_1.Struct.initList(0, Event._OrbObservation, length, this);\n };\n\n Event.prototype.isOrbObservation = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 46;\n };\n\n Event.prototype.setOrbObservation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 46, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptGpsLocationExternal = function (value) {\n capnp_ts_1.Struct.setUint16(8, 47, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownGpsLocationExternal = function () {\n return capnp_ts_1.Struct.disown(this.getGpsLocationExternal());\n };\n\n Event.prototype.getGpsLocationExternal = function () {\n capnp_ts_1.Struct.testWhich(\"gpsLocationExternal\", capnp_ts_1.Struct.getUint16(8, this), 47, this);\n return capnp_ts_1.Struct.getStruct(0, GpsLocationData, this);\n };\n\n Event.prototype.hasGpsLocationExternal = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initGpsLocationExternal = function () {\n capnp_ts_1.Struct.setUint16(8, 47, this);\n return capnp_ts_1.Struct.initStructAt(0, GpsLocationData, this);\n };\n\n Event.prototype.isGpsLocationExternal = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 47;\n };\n\n Event.prototype.setGpsLocationExternal = function (value) {\n capnp_ts_1.Struct.setUint16(8, 47, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 48, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLocation = function () {\n return capnp_ts_1.Struct.disown(this.getLocation());\n };\n\n Event.prototype.getLocation = function () {\n capnp_ts_1.Struct.testWhich(\"location\", capnp_ts_1.Struct.getUint16(8, this), 48, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasLocation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLocation = function () {\n capnp_ts_1.Struct.setUint16(8, 48, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isLocation = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 48;\n };\n\n Event.prototype.setLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 48, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptUiNavigationEvent = function (value) {\n capnp_ts_1.Struct.setUint16(8, 49, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownUiNavigationEvent = function () {\n return capnp_ts_1.Struct.disown(this.getUiNavigationEvent());\n };\n\n Event.prototype.getUiNavigationEvent = function () {\n capnp_ts_1.Struct.testWhich(\"uiNavigationEvent\", capnp_ts_1.Struct.getUint16(8, this), 49, this);\n return capnp_ts_1.Struct.getStruct(0, UiNavigationEvent, this);\n };\n\n Event.prototype.hasUiNavigationEvent = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initUiNavigationEvent = function () {\n capnp_ts_1.Struct.setUint16(8, 49, this);\n return capnp_ts_1.Struct.initStructAt(0, UiNavigationEvent, this);\n };\n\n Event.prototype.isUiNavigationEvent = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 49;\n };\n\n Event.prototype.setUiNavigationEvent = function (value) {\n capnp_ts_1.Struct.setUint16(8, 49, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveLocationKalman = function (value) {\n capnp_ts_1.Struct.setUint16(8, 50, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveLocationKalman = function () {\n return capnp_ts_1.Struct.disown(this.getLiveLocationKalman());\n };\n\n Event.prototype.getLiveLocationKalman = function () {\n capnp_ts_1.Struct.testWhich(\"liveLocationKalman\", capnp_ts_1.Struct.getUint16(8, this), 50, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasLiveLocationKalman = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveLocationKalman = function () {\n capnp_ts_1.Struct.setUint16(8, 50, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isLiveLocationKalman = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 50;\n };\n\n Event.prototype.setLiveLocationKalman = function (value) {\n capnp_ts_1.Struct.setUint16(8, 50, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptTestJoystick = function (value) {\n capnp_ts_1.Struct.setUint16(8, 51, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownTestJoystick = function () {\n return capnp_ts_1.Struct.disown(this.getTestJoystick());\n };\n\n Event.prototype.getTestJoystick = function () {\n capnp_ts_1.Struct.testWhich(\"testJoystick\", capnp_ts_1.Struct.getUint16(8, this), 51, this);\n return capnp_ts_1.Struct.getStruct(0, Joystick, this);\n };\n\n Event.prototype.hasTestJoystick = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initTestJoystick = function () {\n capnp_ts_1.Struct.setUint16(8, 51, this);\n return capnp_ts_1.Struct.initStructAt(0, Joystick, this);\n };\n\n Event.prototype.isTestJoystick = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 51;\n };\n\n Event.prototype.setTestJoystick = function (value) {\n capnp_ts_1.Struct.setUint16(8, 51, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 52, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbOdometry = function () {\n return capnp_ts_1.Struct.disown(this.getOrbOdometry());\n };\n\n Event.prototype.getOrbOdometry = function () {\n capnp_ts_1.Struct.testWhich(\"orbOdometry\", capnp_ts_1.Struct.getUint16(8, this), 52, this);\n return capnp_ts_1.Struct.getStruct(0, OrbOdometry, this);\n };\n\n Event.prototype.hasOrbOdometry = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbOdometry = function () {\n capnp_ts_1.Struct.setUint16(8, 52, this);\n return capnp_ts_1.Struct.initStructAt(0, OrbOdometry, this);\n };\n\n Event.prototype.isOrbOdometry = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 52;\n };\n\n Event.prototype.setOrbOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 52, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbFeatures = function (value) {\n capnp_ts_1.Struct.setUint16(8, 53, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbFeatures = function () {\n return capnp_ts_1.Struct.disown(this.getOrbFeatures());\n };\n\n Event.prototype.getOrbFeatures = function () {\n capnp_ts_1.Struct.testWhich(\"orbFeatures\", capnp_ts_1.Struct.getUint16(8, this), 53, this);\n return capnp_ts_1.Struct.getStruct(0, OrbFeatures, this);\n };\n\n Event.prototype.hasOrbFeatures = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbFeatures = function () {\n capnp_ts_1.Struct.setUint16(8, 53, this);\n return capnp_ts_1.Struct.initStructAt(0, OrbFeatures, this);\n };\n\n Event.prototype.isOrbFeatures = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 53;\n };\n\n Event.prototype.setOrbFeatures = function (value) {\n capnp_ts_1.Struct.setUint16(8, 53, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptApplanixLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 54, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownApplanixLocation = function () {\n return capnp_ts_1.Struct.disown(this.getApplanixLocation());\n };\n\n Event.prototype.getApplanixLocation = function () {\n capnp_ts_1.Struct.testWhich(\"applanixLocation\", capnp_ts_1.Struct.getUint16(8, this), 54, this);\n return capnp_ts_1.Struct.getStruct(0, LiveLocationData, this);\n };\n\n Event.prototype.hasApplanixLocation = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initApplanixLocation = function () {\n capnp_ts_1.Struct.setUint16(8, 54, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveLocationData, this);\n };\n\n Event.prototype.isApplanixLocation = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 54;\n };\n\n Event.prototype.setApplanixLocation = function (value) {\n capnp_ts_1.Struct.setUint16(8, 54, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbKeyFrame = function (value) {\n capnp_ts_1.Struct.setUint16(8, 55, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbKeyFrame = function () {\n return capnp_ts_1.Struct.disown(this.getOrbKeyFrame());\n };\n\n Event.prototype.getOrbKeyFrame = function () {\n capnp_ts_1.Struct.testWhich(\"orbKeyFrame\", capnp_ts_1.Struct.getUint16(8, this), 55, this);\n return capnp_ts_1.Struct.getStruct(0, OrbKeyFrame, this);\n };\n\n Event.prototype.hasOrbKeyFrame = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbKeyFrame = function () {\n capnp_ts_1.Struct.setUint16(8, 55, this);\n return capnp_ts_1.Struct.initStructAt(0, OrbKeyFrame, this);\n };\n\n Event.prototype.isOrbKeyFrame = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 55;\n };\n\n Event.prototype.setOrbKeyFrame = function (value) {\n capnp_ts_1.Struct.setUint16(8, 55, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptUiLayoutState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 56, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownUiLayoutState = function () {\n return capnp_ts_1.Struct.disown(this.getUiLayoutState());\n };\n\n Event.prototype.getUiLayoutState = function () {\n capnp_ts_1.Struct.testWhich(\"uiLayoutState\", capnp_ts_1.Struct.getUint16(8, this), 56, this);\n return capnp_ts_1.Struct.getStruct(0, UiLayoutState, this);\n };\n\n Event.prototype.hasUiLayoutState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initUiLayoutState = function () {\n capnp_ts_1.Struct.setUint16(8, 56, this);\n return capnp_ts_1.Struct.initStructAt(0, UiLayoutState, this);\n };\n\n Event.prototype.isUiLayoutState = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 56;\n };\n\n Event.prototype.setUiLayoutState = function (value) {\n capnp_ts_1.Struct.setUint16(8, 56, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptOrbFeaturesSummary = function (value) {\n capnp_ts_1.Struct.setUint16(8, 57, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownOrbFeaturesSummary = function () {\n return capnp_ts_1.Struct.disown(this.getOrbFeaturesSummary());\n };\n\n Event.prototype.getOrbFeaturesSummary = function () {\n capnp_ts_1.Struct.testWhich(\"orbFeaturesSummary\", capnp_ts_1.Struct.getUint16(8, this), 57, this);\n return capnp_ts_1.Struct.getStruct(0, OrbFeaturesSummary, this);\n };\n\n Event.prototype.hasOrbFeaturesSummary = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initOrbFeaturesSummary = function () {\n capnp_ts_1.Struct.setUint16(8, 57, this);\n return capnp_ts_1.Struct.initStructAt(0, OrbFeaturesSummary, this);\n };\n\n Event.prototype.isOrbFeaturesSummary = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 57;\n };\n\n Event.prototype.setOrbFeaturesSummary = function (value) {\n capnp_ts_1.Struct.setUint16(8, 57, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptDriverMonitoring = function (value) {\n capnp_ts_1.Struct.setUint16(8, 58, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownDriverMonitoring = function () {\n return capnp_ts_1.Struct.disown(this.getDriverMonitoring());\n };\n\n Event.prototype.getDriverMonitoring = function () {\n capnp_ts_1.Struct.testWhich(\"driverMonitoring\", capnp_ts_1.Struct.getUint16(8, this), 58, this);\n return capnp_ts_1.Struct.getStruct(0, DriverMonitoring, this);\n };\n\n Event.prototype.hasDriverMonitoring = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initDriverMonitoring = function () {\n capnp_ts_1.Struct.setUint16(8, 58, this);\n return capnp_ts_1.Struct.initStructAt(0, DriverMonitoring, this);\n };\n\n Event.prototype.isDriverMonitoring = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 58;\n };\n\n Event.prototype.setDriverMonitoring = function (value) {\n capnp_ts_1.Struct.setUint16(8, 58, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptBoot = function (value) {\n capnp_ts_1.Struct.setUint16(8, 59, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownBoot = function () {\n return capnp_ts_1.Struct.disown(this.getBoot());\n };\n\n Event.prototype.getBoot = function () {\n capnp_ts_1.Struct.testWhich(\"boot\", capnp_ts_1.Struct.getUint16(8, this), 59, this);\n return capnp_ts_1.Struct.getStruct(0, Boot, this);\n };\n\n Event.prototype.hasBoot = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initBoot = function () {\n capnp_ts_1.Struct.setUint16(8, 59, this);\n return capnp_ts_1.Struct.initStructAt(0, Boot, this);\n };\n\n Event.prototype.isBoot = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 59;\n };\n\n Event.prototype.setBoot = function (value) {\n capnp_ts_1.Struct.setUint16(8, 59, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveParameters = function (value) {\n capnp_ts_1.Struct.setUint16(8, 60, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveParameters = function () {\n return capnp_ts_1.Struct.disown(this.getLiveParameters());\n };\n\n Event.prototype.getLiveParameters = function () {\n capnp_ts_1.Struct.testWhich(\"liveParameters\", capnp_ts_1.Struct.getUint16(8, this), 60, this);\n return capnp_ts_1.Struct.getStruct(0, LiveParametersData, this);\n };\n\n Event.prototype.hasLiveParameters = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveParameters = function () {\n capnp_ts_1.Struct.setUint16(8, 60, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveParametersData, this);\n };\n\n Event.prototype.isLiveParameters = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 60;\n };\n\n Event.prototype.setLiveParameters = function (value) {\n capnp_ts_1.Struct.setUint16(8, 60, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptLiveMapData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 61, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownLiveMapData = function () {\n return capnp_ts_1.Struct.disown(this.getLiveMapData());\n };\n\n Event.prototype.getLiveMapData = function () {\n capnp_ts_1.Struct.testWhich(\"liveMapData\", capnp_ts_1.Struct.getUint16(8, this), 61, this);\n return capnp_ts_1.Struct.getStruct(0, LiveMapData, this);\n };\n\n Event.prototype.hasLiveMapData = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initLiveMapData = function () {\n capnp_ts_1.Struct.setUint16(8, 61, this);\n return capnp_ts_1.Struct.initStructAt(0, LiveMapData, this);\n };\n\n Event.prototype.isLiveMapData = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 61;\n };\n\n Event.prototype.setLiveMapData = function (value) {\n capnp_ts_1.Struct.setUint16(8, 61, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCameraOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 62, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCameraOdometry = function () {\n return capnp_ts_1.Struct.disown(this.getCameraOdometry());\n };\n\n Event.prototype.getCameraOdometry = function () {\n capnp_ts_1.Struct.testWhich(\"cameraOdometry\", capnp_ts_1.Struct.getUint16(8, this), 62, this);\n return capnp_ts_1.Struct.getStruct(0, CameraOdometry, this);\n };\n\n Event.prototype.hasCameraOdometry = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCameraOdometry = function () {\n capnp_ts_1.Struct.setUint16(8, 62, this);\n return capnp_ts_1.Struct.initStructAt(0, CameraOdometry, this);\n };\n\n Event.prototype.isCameraOdometry = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 62;\n };\n\n Event.prototype.setCameraOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 62, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptPathPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 63, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownPathPlan = function () {\n return capnp_ts_1.Struct.disown(this.getPathPlan());\n };\n\n Event.prototype.getPathPlan = function () {\n capnp_ts_1.Struct.testWhich(\"pathPlan\", capnp_ts_1.Struct.getUint16(8, this), 63, this);\n return capnp_ts_1.Struct.getStruct(0, PathPlan, this);\n };\n\n Event.prototype.hasPathPlan = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initPathPlan = function () {\n capnp_ts_1.Struct.setUint16(8, 63, this);\n return capnp_ts_1.Struct.initStructAt(0, PathPlan, this);\n };\n\n Event.prototype.isPathPlan = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 63;\n };\n\n Event.prototype.setPathPlan = function (value) {\n capnp_ts_1.Struct.setUint16(8, 63, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptKalmanOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 64, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownKalmanOdometry = function () {\n return capnp_ts_1.Struct.disown(this.getKalmanOdometry());\n };\n\n Event.prototype.getKalmanOdometry = function () {\n capnp_ts_1.Struct.testWhich(\"kalmanOdometry\", capnp_ts_1.Struct.getUint16(8, this), 64, this);\n return capnp_ts_1.Struct.getStruct(0, KalmanOdometry, this);\n };\n\n Event.prototype.hasKalmanOdometry = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initKalmanOdometry = function () {\n capnp_ts_1.Struct.setUint16(8, 64, this);\n return capnp_ts_1.Struct.initStructAt(0, KalmanOdometry, this);\n };\n\n Event.prototype.isKalmanOdometry = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 64;\n };\n\n Event.prototype.setKalmanOdometry = function (value) {\n capnp_ts_1.Struct.setUint16(8, 64, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptThumbnail = function (value) {\n capnp_ts_1.Struct.setUint16(8, 65, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownThumbnail = function () {\n return capnp_ts_1.Struct.disown(this.getThumbnail());\n };\n\n Event.prototype.getThumbnail = function () {\n capnp_ts_1.Struct.testWhich(\"thumbnail\", capnp_ts_1.Struct.getUint16(8, this), 65, this);\n return capnp_ts_1.Struct.getStruct(0, Thumbnail, this);\n };\n\n Event.prototype.hasThumbnail = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initThumbnail = function () {\n capnp_ts_1.Struct.setUint16(8, 65, this);\n return capnp_ts_1.Struct.initStructAt(0, Thumbnail, this);\n };\n\n Event.prototype.isThumbnail = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 65;\n };\n\n Event.prototype.setThumbnail = function (value) {\n capnp_ts_1.Struct.setUint16(8, 65, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCarEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 66, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCarEvents = function () {\n return capnp_ts_1.Struct.disown(this.getCarEvents());\n };\n\n Event.prototype.getCarEvents = function () {\n capnp_ts_1.Struct.testWhich(\"carEvents\", capnp_ts_1.Struct.getUint16(8, this), 66, this);\n return capnp_ts_1.Struct.getList(0, Event._CarEvents, this);\n };\n\n Event.prototype.hasCarEvents = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCarEvents = function (length) {\n capnp_ts_1.Struct.setUint16(8, 66, this);\n return capnp_ts_1.Struct.initList(0, Event._CarEvents, length, this);\n };\n\n Event.prototype.isCarEvents = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 66;\n };\n\n Event.prototype.setCarEvents = function (value) {\n capnp_ts_1.Struct.setUint16(8, 66, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.adoptCarParams = function (value) {\n capnp_ts_1.Struct.setUint16(8, 67, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.disownCarParams = function () {\n return capnp_ts_1.Struct.disown(this.getCarParams());\n };\n\n Event.prototype.getCarParams = function () {\n capnp_ts_1.Struct.testWhich(\"carParams\", capnp_ts_1.Struct.getUint16(8, this), 67, this);\n return capnp_ts_1.Struct.getStruct(0, car_capnp_1.CarParams, this);\n };\n\n Event.prototype.hasCarParams = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.initCarParams = function () {\n capnp_ts_1.Struct.setUint16(8, 67, this);\n return capnp_ts_1.Struct.initStructAt(0, car_capnp_1.CarParams, this);\n };\n\n Event.prototype.isCarParams = function () {\n return capnp_ts_1.Struct.getUint16(8, this) === 67;\n };\n\n Event.prototype.setCarParams = function (value) {\n capnp_ts_1.Struct.setUint16(8, 67, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n Event.prototype.toString = function () {\n return \"Event_\" + _super.prototype.toString.call(this);\n };\n\n Event.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n Event.INIT_DATA = Event_Which.INIT_DATA;\n Event.FRAME = Event_Which.FRAME;\n Event.GPS_NMEA = Event_Which.GPS_NMEA;\n Event.SENSOR_EVENT_DEPRECATED = Event_Which.SENSOR_EVENT_DEPRECATED;\n Event.CAN = Event_Which.CAN;\n Event.THERMAL = Event_Which.THERMAL;\n Event.CONTROLS_STATE = Event_Which.CONTROLS_STATE;\n Event.LIVE_EVENT_DEPRECATED = Event_Which.LIVE_EVENT_DEPRECATED;\n Event.MODEL = Event_Which.MODEL;\n Event.FEATURES = Event_Which.FEATURES;\n Event.SENSOR_EVENTS = Event_Which.SENSOR_EVENTS;\n Event.HEALTH = Event_Which.HEALTH;\n Event.RADAR_STATE = Event_Which.RADAR_STATE;\n Event.LIVE_UIDEPRECATED = Event_Which.LIVE_UIDEPRECATED;\n Event.ENCODE_IDX = Event_Which.ENCODE_IDX;\n Event.LIVE_TRACKS = Event_Which.LIVE_TRACKS;\n Event.SENDCAN = Event_Which.SENDCAN;\n Event.LOG_MESSAGE = Event_Which.LOG_MESSAGE;\n Event.LIVE_CALIBRATION = Event_Which.LIVE_CALIBRATION;\n Event.ANDROID_LOG_ENTRY = Event_Which.ANDROID_LOG_ENTRY;\n Event.GPS_LOCATION = Event_Which.GPS_LOCATION;\n Event.CAR_STATE = Event_Which.CAR_STATE;\n Event.CAR_CONTROL = Event_Which.CAR_CONTROL;\n Event.PLAN = Event_Which.PLAN;\n Event.LIVE_LOCATION = Event_Which.LIVE_LOCATION;\n Event.ETHERNET_DATA = Event_Which.ETHERNET_DATA;\n Event.NAV_UPDATE = Event_Which.NAV_UPDATE;\n Event.CELL_INFO = Event_Which.CELL_INFO;\n Event.WIFI_SCAN = Event_Which.WIFI_SCAN;\n Event.ANDROID_GNSS = Event_Which.ANDROID_GNSS;\n Event.QCOM_GNSS = Event_Which.QCOM_GNSS;\n Event.LIDAR_PTS = Event_Which.LIDAR_PTS;\n Event.PROC_LOG = Event_Which.PROC_LOG;\n Event.UBLOX_GNSS = Event_Which.UBLOX_GNSS;\n Event.CLOCKS = Event_Which.CLOCKS;\n Event.LIVE_MPC = Event_Which.LIVE_MPC;\n Event.LIVE_LONGITUDINAL_MPC = Event_Which.LIVE_LONGITUDINAL_MPC;\n Event.NAV_STATUS = Event_Which.NAV_STATUS;\n Event.UBLOX_RAW = Event_Which.UBLOX_RAW;\n Event.GPS_PLANNER_POINTS = Event_Which.GPS_PLANNER_POINTS;\n Event.GPS_PLANNER_PLAN = Event_Which.GPS_PLANNER_PLAN;\n Event.APPLANIX_RAW = Event_Which.APPLANIX_RAW;\n Event.TRAFFIC_EVENTS = Event_Which.TRAFFIC_EVENTS;\n Event.LIVE_LOCATION_TIMING = Event_Which.LIVE_LOCATION_TIMING;\n Event.ORBSLAM_CORRECTION_DEPRECATED = Event_Which.ORBSLAM_CORRECTION_DEPRECATED;\n Event.LIVE_LOCATION_CORRECTED = Event_Which.LIVE_LOCATION_CORRECTED;\n Event.ORB_OBSERVATION = Event_Which.ORB_OBSERVATION;\n Event.GPS_LOCATION_EXTERNAL = Event_Which.GPS_LOCATION_EXTERNAL;\n Event.LOCATION = Event_Which.LOCATION;\n Event.UI_NAVIGATION_EVENT = Event_Which.UI_NAVIGATION_EVENT;\n Event.LIVE_LOCATION_KALMAN = Event_Which.LIVE_LOCATION_KALMAN;\n Event.TEST_JOYSTICK = Event_Which.TEST_JOYSTICK;\n Event.ORB_ODOMETRY = Event_Which.ORB_ODOMETRY;\n Event.ORB_FEATURES = Event_Which.ORB_FEATURES;\n Event.APPLANIX_LOCATION = Event_Which.APPLANIX_LOCATION;\n Event.ORB_KEY_FRAME = Event_Which.ORB_KEY_FRAME;\n Event.UI_LAYOUT_STATE = Event_Which.UI_LAYOUT_STATE;\n Event.ORB_FEATURES_SUMMARY = Event_Which.ORB_FEATURES_SUMMARY;\n Event.DRIVER_MONITORING = Event_Which.DRIVER_MONITORING;\n Event.BOOT = Event_Which.BOOT;\n Event.LIVE_PARAMETERS = Event_Which.LIVE_PARAMETERS;\n Event.LIVE_MAP_DATA = Event_Which.LIVE_MAP_DATA;\n Event.CAMERA_ODOMETRY = Event_Which.CAMERA_ODOMETRY;\n Event.PATH_PLAN = Event_Which.PATH_PLAN;\n Event.KALMAN_ODOMETRY = Event_Which.KALMAN_ODOMETRY;\n Event.THUMBNAIL = Event_Which.THUMBNAIL;\n Event.CAR_EVENTS = Event_Which.CAR_EVENTS;\n Event.CAR_PARAMS = Event_Which.CAR_PARAMS;\n Event._capnp = {\n displayName: \"Event\",\n id: \"d314cfd957229c11\",\n size: new capnp_ts_1.ObjectSize(16, 1),\n defaultValid: capnp.getBitMask(true, 0)\n };\n return Event;\n}(capnp_ts_1.Struct);\n\nexports.Event = Event;\nMap._Entries = capnp.CompositeList(Map_Entry);\nInitData._AndroidSensors = capnp.CompositeList(InitData_AndroidSensor);\nPlan._EventsDEPRECATED = capnp.CompositeList(car_capnp_1.CarEvent);\nNavUpdate_Segment._Parts = capnp.CompositeList(NavUpdate_LatLng);\nNavUpdate._Segments = capnp.CompositeList(NavUpdate_Segment);\nAndroidGnss_Measurements._Measurements = capnp.CompositeList(AndroidGnss_Measurements_Measurement);\nQcomGnss_MeasurementReport._Sv = capnp.CompositeList(QcomGnss_MeasurementReport_SV);\nQcomGnss_DrMeasurementReport._Sv = capnp.CompositeList(QcomGnss_DrMeasurementReport_SV);\nProcLog._CpuTimes = capnp.CompositeList(ProcLog_CPUTimes);\nProcLog._Procs = capnp.CompositeList(ProcLog_Process);\nUbloxGnss_MeasurementReport._Measurements = capnp.CompositeList(UbloxGnss_MeasurementReport_Measurement);\nGPSPlannerPoints._PointsDEPRECATED = capnp.CompositeList(ECEFPointDEPRECATED);\nGPSPlannerPoints._Points = capnp.CompositeList(ECEFPoint);\nGPSPlannerPlan._PointsDEPRECATED = capnp.CompositeList(ECEFPointDEPRECATED);\nGPSPlannerPlan._Points = capnp.CompositeList(ECEFPoint);\nOrbKeyFrame._Dpos = capnp.CompositeList(ECEFPoint);\nEvent._Can = capnp.CompositeList(CanData);\nEvent._LiveEventDEPRECATED = capnp.CompositeList(LiveEventData);\nEvent._SensorEvents = capnp.CompositeList(SensorEventData);\nEvent._LiveTracks = capnp.CompositeList(LiveTracks);\nEvent._Sendcan = capnp.CompositeList(CanData);\nEvent._EthernetData = capnp.CompositeList(EthernetPacket);\nEvent._CellInfo = capnp.CompositeList(CellInfo);\nEvent._WifiScan = capnp.CompositeList(WifiScan);\nEvent._TrafficEvents = capnp.CompositeList(TrafficEvent);\nEvent._OrbObservation = capnp.CompositeList(OrbObservation);\nEvent._CarEvents = capnp.CompositeList(car_capnp_1.CarEvent);","\"use strict\";\n/* tslint:disable */\n\nvar __extends = this && this.__extends || function () {\n var 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 (b.hasOwnProperty(p)) d[p] = b[p];\n }\n };\n\n return function (d, b) {\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\nexports.__esModule = true;\n/**\n * This file has been automatically generated by the [capnpc-ts utility](https://github.com/jdiaz5513/capnp-ts).\n */\n\nvar capnp = require(\"capnp-ts\");\n\nvar capnp_ts_1 = require(\"capnp-ts\");\n\nexports._capnpFileId = \"8e2af1e708af8b8d\";\nvar CarEvent_EventName;\n\n(function (CarEvent_EventName) {\n CarEvent_EventName[CarEvent_EventName[\"CAN_ERROR\"] = 0] = \"CAN_ERROR\";\n CarEvent_EventName[CarEvent_EventName[\"STEER_UNAVAILABLE\"] = 1] = \"STEER_UNAVAILABLE\";\n CarEvent_EventName[CarEvent_EventName[\"BRAKE_UNAVAILABLE\"] = 2] = \"BRAKE_UNAVAILABLE\";\n CarEvent_EventName[CarEvent_EventName[\"GAS_UNAVAILABLE\"] = 3] = \"GAS_UNAVAILABLE\";\n CarEvent_EventName[CarEvent_EventName[\"WRONG_GEAR\"] = 4] = \"WRONG_GEAR\";\n CarEvent_EventName[CarEvent_EventName[\"DOOR_OPEN\"] = 5] = \"DOOR_OPEN\";\n CarEvent_EventName[CarEvent_EventName[\"SEATBELT_NOT_LATCHED\"] = 6] = \"SEATBELT_NOT_LATCHED\";\n CarEvent_EventName[CarEvent_EventName[\"ESP_DISABLED\"] = 7] = \"ESP_DISABLED\";\n CarEvent_EventName[CarEvent_EventName[\"WRONG_CAR_MODE\"] = 8] = \"WRONG_CAR_MODE\";\n CarEvent_EventName[CarEvent_EventName[\"STEER_TEMP_UNAVAILABLE\"] = 9] = \"STEER_TEMP_UNAVAILABLE\";\n CarEvent_EventName[CarEvent_EventName[\"REVERSE_GEAR\"] = 10] = \"REVERSE_GEAR\";\n CarEvent_EventName[CarEvent_EventName[\"BUTTON_CANCEL\"] = 11] = \"BUTTON_CANCEL\";\n CarEvent_EventName[CarEvent_EventName[\"BUTTON_ENABLE\"] = 12] = \"BUTTON_ENABLE\";\n CarEvent_EventName[CarEvent_EventName[\"PEDAL_PRESSED\"] = 13] = \"PEDAL_PRESSED\";\n CarEvent_EventName[CarEvent_EventName[\"CRUISE_DISABLED\"] = 14] = \"CRUISE_DISABLED\";\n CarEvent_EventName[CarEvent_EventName[\"RADAR_CAN_ERROR\"] = 15] = \"RADAR_CAN_ERROR\";\n CarEvent_EventName[CarEvent_EventName[\"DATA_NEEDED\"] = 16] = \"DATA_NEEDED\";\n CarEvent_EventName[CarEvent_EventName[\"SPEED_TOO_LOW\"] = 17] = \"SPEED_TOO_LOW\";\n CarEvent_EventName[CarEvent_EventName[\"OUT_OF_SPACE\"] = 18] = \"OUT_OF_SPACE\";\n CarEvent_EventName[CarEvent_EventName[\"OVERHEAT\"] = 19] = \"OVERHEAT\";\n CarEvent_EventName[CarEvent_EventName[\"CALIBRATION_INCOMPLETE\"] = 20] = \"CALIBRATION_INCOMPLETE\";\n CarEvent_EventName[CarEvent_EventName[\"CALIBRATION_INVALID\"] = 21] = \"CALIBRATION_INVALID\";\n CarEvent_EventName[CarEvent_EventName[\"CONTROLS_MISMATCH\"] = 22] = \"CONTROLS_MISMATCH\";\n CarEvent_EventName[CarEvent_EventName[\"PCM_ENABLE\"] = 23] = \"PCM_ENABLE\";\n CarEvent_EventName[CarEvent_EventName[\"PCM_DISABLE\"] = 24] = \"PCM_DISABLE\";\n CarEvent_EventName[CarEvent_EventName[\"NO_TARGET\"] = 25] = \"NO_TARGET\";\n CarEvent_EventName[CarEvent_EventName[\"RADAR_FAULT\"] = 26] = \"RADAR_FAULT\";\n CarEvent_EventName[CarEvent_EventName[\"MODEL_COMM_ISSUE_DEPRECATED\"] = 27] = \"MODEL_COMM_ISSUE_DEPRECATED\";\n CarEvent_EventName[CarEvent_EventName[\"BRAKE_HOLD\"] = 28] = \"BRAKE_HOLD\";\n CarEvent_EventName[CarEvent_EventName[\"PARK_BRAKE\"] = 29] = \"PARK_BRAKE\";\n CarEvent_EventName[CarEvent_EventName[\"MANUAL_RESTART\"] = 30] = \"MANUAL_RESTART\";\n CarEvent_EventName[CarEvent_EventName[\"LOW_SPEED_LOCKOUT\"] = 31] = \"LOW_SPEED_LOCKOUT\";\n CarEvent_EventName[CarEvent_EventName[\"PLANNER_ERROR\"] = 32] = \"PLANNER_ERROR\";\n CarEvent_EventName[CarEvent_EventName[\"IPAS_OVERRIDE\"] = 33] = \"IPAS_OVERRIDE\";\n CarEvent_EventName[CarEvent_EventName[\"DEBUG_ALERT\"] = 34] = \"DEBUG_ALERT\";\n CarEvent_EventName[CarEvent_EventName[\"STEER_TEMP_UNAVAILABLE_MUTE\"] = 35] = \"STEER_TEMP_UNAVAILABLE_MUTE\";\n CarEvent_EventName[CarEvent_EventName[\"RESUME_REQUIRED\"] = 36] = \"RESUME_REQUIRED\";\n CarEvent_EventName[CarEvent_EventName[\"PRE_DRIVER_DISTRACTED\"] = 37] = \"PRE_DRIVER_DISTRACTED\";\n CarEvent_EventName[CarEvent_EventName[\"PROMPT_DRIVER_DISTRACTED\"] = 38] = \"PROMPT_DRIVER_DISTRACTED\";\n CarEvent_EventName[CarEvent_EventName[\"DRIVER_DISTRACTED\"] = 39] = \"DRIVER_DISTRACTED\";\n CarEvent_EventName[CarEvent_EventName[\"GEOFENCE\"] = 40] = \"GEOFENCE\";\n CarEvent_EventName[CarEvent_EventName[\"DRIVER_MONITOR_ON\"] = 41] = \"DRIVER_MONITOR_ON\";\n CarEvent_EventName[CarEvent_EventName[\"DRIVER_MONITOR_OFF\"] = 42] = \"DRIVER_MONITOR_OFF\";\n CarEvent_EventName[CarEvent_EventName[\"PRE_DRIVER_UNRESPONSIVE\"] = 43] = \"PRE_DRIVER_UNRESPONSIVE\";\n CarEvent_EventName[CarEvent_EventName[\"PROMPT_DRIVER_UNRESPONSIVE\"] = 44] = \"PROMPT_DRIVER_UNRESPONSIVE\";\n CarEvent_EventName[CarEvent_EventName[\"DRIVER_UNRESPONSIVE\"] = 45] = \"DRIVER_UNRESPONSIVE\";\n CarEvent_EventName[CarEvent_EventName[\"BELOW_STEER_SPEED\"] = 46] = \"BELOW_STEER_SPEED\";\n CarEvent_EventName[CarEvent_EventName[\"CALIBRATION_PROGRESS\"] = 47] = \"CALIBRATION_PROGRESS\";\n CarEvent_EventName[CarEvent_EventName[\"LOW_BATTERY\"] = 48] = \"LOW_BATTERY\";\n CarEvent_EventName[CarEvent_EventName[\"INVALID_GIRAFFE_HONDA\"] = 49] = \"INVALID_GIRAFFE_HONDA\";\n CarEvent_EventName[CarEvent_EventName[\"VEHICLE_MODEL_INVALID\"] = 50] = \"VEHICLE_MODEL_INVALID\";\n CarEvent_EventName[CarEvent_EventName[\"CONTROLS_FAILED\"] = 51] = \"CONTROLS_FAILED\";\n CarEvent_EventName[CarEvent_EventName[\"SENSOR_DATA_INVALID\"] = 52] = \"SENSOR_DATA_INVALID\";\n CarEvent_EventName[CarEvent_EventName[\"COMM_ISSUE\"] = 53] = \"COMM_ISSUE\";\n CarEvent_EventName[CarEvent_EventName[\"TOO_DISTRACTED\"] = 54] = \"TOO_DISTRACTED\";\n CarEvent_EventName[CarEvent_EventName[\"POSENET_INVALID\"] = 55] = \"POSENET_INVALID\";\n CarEvent_EventName[CarEvent_EventName[\"SOUNDS_UNAVAILABLE\"] = 56] = \"SOUNDS_UNAVAILABLE\";\n})(CarEvent_EventName = exports.CarEvent_EventName || (exports.CarEvent_EventName = {}));\n\nvar CarEvent =\n/** @class */\nfunction (_super) {\n __extends(CarEvent, _super);\n\n function CarEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarEvent.prototype.getName = function () {\n return capnp_ts_1.Struct.getUint16(0, this);\n };\n\n CarEvent.prototype.setName = function (value) {\n capnp_ts_1.Struct.setUint16(0, value, this);\n };\n\n CarEvent.prototype.getEnable = function () {\n return capnp_ts_1.Struct.getBit(16, this);\n };\n\n CarEvent.prototype.setEnable = function (value) {\n capnp_ts_1.Struct.setBit(16, value, this);\n };\n\n CarEvent.prototype.getNoEntry = function () {\n return capnp_ts_1.Struct.getBit(17, this);\n };\n\n CarEvent.prototype.setNoEntry = function (value) {\n capnp_ts_1.Struct.setBit(17, value, this);\n };\n\n CarEvent.prototype.getWarning = function () {\n return capnp_ts_1.Struct.getBit(18, this);\n };\n\n CarEvent.prototype.setWarning = function (value) {\n capnp_ts_1.Struct.setBit(18, value, this);\n };\n\n CarEvent.prototype.getUserDisable = function () {\n return capnp_ts_1.Struct.getBit(19, this);\n };\n\n CarEvent.prototype.setUserDisable = function (value) {\n capnp_ts_1.Struct.setBit(19, value, this);\n };\n\n CarEvent.prototype.getSoftDisable = function () {\n return capnp_ts_1.Struct.getBit(20, this);\n };\n\n CarEvent.prototype.setSoftDisable = function (value) {\n capnp_ts_1.Struct.setBit(20, value, this);\n };\n\n CarEvent.prototype.getImmediateDisable = function () {\n return capnp_ts_1.Struct.getBit(21, this);\n };\n\n CarEvent.prototype.setImmediateDisable = function (value) {\n capnp_ts_1.Struct.setBit(21, value, this);\n };\n\n CarEvent.prototype.getPreEnable = function () {\n return capnp_ts_1.Struct.getBit(22, this);\n };\n\n CarEvent.prototype.setPreEnable = function (value) {\n capnp_ts_1.Struct.setBit(22, value, this);\n };\n\n CarEvent.prototype.getPermanent = function () {\n return capnp_ts_1.Struct.getBit(23, this);\n };\n\n CarEvent.prototype.setPermanent = function (value) {\n capnp_ts_1.Struct.setBit(23, value, this);\n };\n\n CarEvent.prototype.toString = function () {\n return \"CarEvent_\" + _super.prototype.toString.call(this);\n };\n\n CarEvent.EventName = CarEvent_EventName;\n CarEvent._capnp = {\n displayName: \"CarEvent\",\n id: \"9b1657f34caf3ad3\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return CarEvent;\n}(capnp_ts_1.Struct);\n\nexports.CarEvent = CarEvent;\n\nvar CarState_WheelSpeeds =\n/** @class */\nfunction (_super) {\n __extends(CarState_WheelSpeeds, _super);\n\n function CarState_WheelSpeeds() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarState_WheelSpeeds.prototype.getFl = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarState_WheelSpeeds.prototype.setFl = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarState_WheelSpeeds.prototype.getFr = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarState_WheelSpeeds.prototype.setFr = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarState_WheelSpeeds.prototype.getRl = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarState_WheelSpeeds.prototype.setRl = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarState_WheelSpeeds.prototype.getRr = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n CarState_WheelSpeeds.prototype.setRr = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n CarState_WheelSpeeds.prototype.toString = function () {\n return \"CarState_WheelSpeeds_\" + _super.prototype.toString.call(this);\n };\n\n CarState_WheelSpeeds._capnp = {\n displayName: \"WheelSpeeds\",\n id: \"991a37a6155935a3\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarState_WheelSpeeds;\n}(capnp_ts_1.Struct);\n\nexports.CarState_WheelSpeeds = CarState_WheelSpeeds;\n\nvar CarState_CruiseState =\n/** @class */\nfunction (_super) {\n __extends(CarState_CruiseState, _super);\n\n function CarState_CruiseState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarState_CruiseState.prototype.getEnabled = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarState_CruiseState.prototype.setEnabled = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarState_CruiseState.prototype.getSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarState_CruiseState.prototype.setSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarState_CruiseState.prototype.getAvailable = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n CarState_CruiseState.prototype.setAvailable = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n CarState_CruiseState.prototype.getSpeedOffset = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarState_CruiseState.prototype.setSpeedOffset = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarState_CruiseState.prototype.getStandstill = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n CarState_CruiseState.prototype.setStandstill = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n CarState_CruiseState.prototype.toString = function () {\n return \"CarState_CruiseState_\" + _super.prototype.toString.call(this);\n };\n\n CarState_CruiseState._capnp = {\n displayName: \"CruiseState\",\n id: \"e64e81478e6e60af\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarState_CruiseState;\n}(capnp_ts_1.Struct);\n\nexports.CarState_CruiseState = CarState_CruiseState;\nvar CarState_GearShifter;\n\n(function (CarState_GearShifter) {\n CarState_GearShifter[CarState_GearShifter[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n CarState_GearShifter[CarState_GearShifter[\"PARK\"] = 1] = \"PARK\";\n CarState_GearShifter[CarState_GearShifter[\"DRIVE\"] = 2] = \"DRIVE\";\n CarState_GearShifter[CarState_GearShifter[\"NEUTRAL\"] = 3] = \"NEUTRAL\";\n CarState_GearShifter[CarState_GearShifter[\"REVERSE\"] = 4] = \"REVERSE\";\n CarState_GearShifter[CarState_GearShifter[\"SPORT\"] = 5] = \"SPORT\";\n CarState_GearShifter[CarState_GearShifter[\"LOW\"] = 6] = \"LOW\";\n CarState_GearShifter[CarState_GearShifter[\"BRAKE\"] = 7] = \"BRAKE\";\n})(CarState_GearShifter = exports.CarState_GearShifter || (exports.CarState_GearShifter = {}));\n\nvar CarState_ButtonEvent_Type;\n\n(function (CarState_ButtonEvent_Type) {\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"UNKNOWN\"] = 0] = \"UNKNOWN\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"LEFT_BLINKER\"] = 1] = \"LEFT_BLINKER\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"RIGHT_BLINKER\"] = 2] = \"RIGHT_BLINKER\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"ACCEL_CRUISE\"] = 3] = \"ACCEL_CRUISE\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"DECEL_CRUISE\"] = 4] = \"DECEL_CRUISE\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"CANCEL\"] = 5] = \"CANCEL\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"ALT_BUTTON1\"] = 6] = \"ALT_BUTTON1\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"ALT_BUTTON2\"] = 7] = \"ALT_BUTTON2\";\n CarState_ButtonEvent_Type[CarState_ButtonEvent_Type[\"ALT_BUTTON3\"] = 8] = \"ALT_BUTTON3\";\n})(CarState_ButtonEvent_Type = exports.CarState_ButtonEvent_Type || (exports.CarState_ButtonEvent_Type = {}));\n\nvar CarState_ButtonEvent =\n/** @class */\nfunction (_super) {\n __extends(CarState_ButtonEvent, _super);\n\n function CarState_ButtonEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarState_ButtonEvent.prototype.getPressed = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarState_ButtonEvent.prototype.setPressed = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarState_ButtonEvent.prototype.getType = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n CarState_ButtonEvent.prototype.setType = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n CarState_ButtonEvent.prototype.toString = function () {\n return \"CarState_ButtonEvent_\" + _super.prototype.toString.call(this);\n };\n\n CarState_ButtonEvent.Type = CarState_ButtonEvent_Type;\n CarState_ButtonEvent._capnp = {\n displayName: \"ButtonEvent\",\n id: \"ff5ca6835b4acef6\",\n size: new capnp_ts_1.ObjectSize(8, 0)\n };\n return CarState_ButtonEvent;\n}(capnp_ts_1.Struct);\n\nexports.CarState_ButtonEvent = CarState_ButtonEvent;\n\nvar CarState =\n/** @class */\nfunction (_super) {\n __extends(CarState, _super);\n\n function CarState() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarState.prototype.adoptErrorsDEPRECATED = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarState.prototype.disownErrorsDEPRECATED = function () {\n return capnp_ts_1.Struct.disown(this.getErrorsDEPRECATED());\n };\n\n CarState.prototype.getErrorsDEPRECATED = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Uint16List, this);\n };\n\n CarState.prototype.hasErrorsDEPRECATED = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarState.prototype.initErrorsDEPRECATED = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Uint16List, length, this);\n };\n\n CarState.prototype.setErrorsDEPRECATED = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarState.prototype.adoptEvents = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarState.prototype.disownEvents = function () {\n return capnp_ts_1.Struct.disown(this.getEvents());\n };\n\n CarState.prototype.getEvents = function () {\n return capnp_ts_1.Struct.getList(5, CarState._Events, this);\n };\n\n CarState.prototype.hasEvents = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarState.prototype.initEvents = function (length) {\n return capnp_ts_1.Struct.initList(5, CarState._Events, length, this);\n };\n\n CarState.prototype.setEvents = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarState.prototype.getVEgo = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarState.prototype.setVEgo = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarState.prototype.getAEgo = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n CarState.prototype.setAEgo = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n CarState.prototype.getVEgoRaw = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n CarState.prototype.setVEgoRaw = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n CarState.prototype.getYawRate = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n CarState.prototype.setYawRate = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n CarState.prototype.getStandstill = function () {\n return capnp_ts_1.Struct.getBit(67, this);\n };\n\n CarState.prototype.setStandstill = function (value) {\n capnp_ts_1.Struct.setBit(67, value, this);\n };\n\n CarState.prototype.adoptWheelSpeeds = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarState.prototype.disownWheelSpeeds = function () {\n return capnp_ts_1.Struct.disown(this.getWheelSpeeds());\n };\n\n CarState.prototype.getWheelSpeeds = function () {\n return capnp_ts_1.Struct.getStruct(1, CarState_WheelSpeeds, this);\n };\n\n CarState.prototype.hasWheelSpeeds = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarState.prototype.initWheelSpeeds = function () {\n return capnp_ts_1.Struct.initStructAt(1, CarState_WheelSpeeds, this);\n };\n\n CarState.prototype.setWheelSpeeds = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarState.prototype.getGas = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarState.prototype.setGas = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarState.prototype.getGasPressed = function () {\n return capnp_ts_1.Struct.getBit(64, this);\n };\n\n CarState.prototype.setGasPressed = function (value) {\n capnp_ts_1.Struct.setBit(64, value, this);\n };\n\n CarState.prototype.getBrake = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n CarState.prototype.setBrake = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n CarState.prototype.getBrakePressed = function () {\n return capnp_ts_1.Struct.getBit(65, this);\n };\n\n CarState.prototype.setBrakePressed = function (value) {\n capnp_ts_1.Struct.setBit(65, value, this);\n };\n\n CarState.prototype.getBrakeLights = function () {\n return capnp_ts_1.Struct.getBit(68, this);\n };\n\n CarState.prototype.setBrakeLights = function (value) {\n capnp_ts_1.Struct.setBit(68, value, this);\n };\n\n CarState.prototype.getSteeringAngle = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n CarState.prototype.setSteeringAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n CarState.prototype.getSteeringRate = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n CarState.prototype.setSteeringRate = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n CarState.prototype.getSteeringTorque = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n CarState.prototype.setSteeringTorque = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n CarState.prototype.getSteeringTorqueEps = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n CarState.prototype.setSteeringTorqueEps = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n CarState.prototype.getSteeringPressed = function () {\n return capnp_ts_1.Struct.getBit(66, this);\n };\n\n CarState.prototype.setSteeringPressed = function (value) {\n capnp_ts_1.Struct.setBit(66, value, this);\n };\n\n CarState.prototype.adoptCruiseState = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarState.prototype.disownCruiseState = function () {\n return capnp_ts_1.Struct.disown(this.getCruiseState());\n };\n\n CarState.prototype.getCruiseState = function () {\n return capnp_ts_1.Struct.getStruct(2, CarState_CruiseState, this);\n };\n\n CarState.prototype.hasCruiseState = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarState.prototype.initCruiseState = function () {\n return capnp_ts_1.Struct.initStructAt(2, CarState_CruiseState, this);\n };\n\n CarState.prototype.setCruiseState = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarState.prototype.getGearShifter = function () {\n return capnp_ts_1.Struct.getUint16(10, this);\n };\n\n CarState.prototype.setGearShifter = function (value) {\n capnp_ts_1.Struct.setUint16(10, value, this);\n };\n\n CarState.prototype.adoptButtonEvents = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarState.prototype.disownButtonEvents = function () {\n return capnp_ts_1.Struct.disown(this.getButtonEvents());\n };\n\n CarState.prototype.getButtonEvents = function () {\n return capnp_ts_1.Struct.getList(3, CarState._ButtonEvents, this);\n };\n\n CarState.prototype.hasButtonEvents = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarState.prototype.initButtonEvents = function (length) {\n return capnp_ts_1.Struct.initList(3, CarState._ButtonEvents, length, this);\n };\n\n CarState.prototype.setButtonEvents = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarState.prototype.getLeftBlinker = function () {\n return capnp_ts_1.Struct.getBit(69, this);\n };\n\n CarState.prototype.setLeftBlinker = function (value) {\n capnp_ts_1.Struct.setBit(69, value, this);\n };\n\n CarState.prototype.getRightBlinker = function () {\n return capnp_ts_1.Struct.getBit(70, this);\n };\n\n CarState.prototype.setRightBlinker = function (value) {\n capnp_ts_1.Struct.setBit(70, value, this);\n };\n\n CarState.prototype.getGenericToggle = function () {\n return capnp_ts_1.Struct.getBit(71, this);\n };\n\n CarState.prototype.setGenericToggle = function (value) {\n capnp_ts_1.Struct.setBit(71, value, this);\n };\n\n CarState.prototype.getDoorOpen = function () {\n return capnp_ts_1.Struct.getBit(72, this);\n };\n\n CarState.prototype.setDoorOpen = function (value) {\n capnp_ts_1.Struct.setBit(72, value, this);\n };\n\n CarState.prototype.getSeatbeltUnlatched = function () {\n return capnp_ts_1.Struct.getBit(73, this);\n };\n\n CarState.prototype.setSeatbeltUnlatched = function (value) {\n capnp_ts_1.Struct.setBit(73, value, this);\n };\n\n CarState.prototype.getCanValid = function () {\n return capnp_ts_1.Struct.getBit(74, this);\n };\n\n CarState.prototype.setCanValid = function (value) {\n capnp_ts_1.Struct.setBit(74, value, this);\n };\n\n CarState.prototype.adoptCanMonoTimes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarState.prototype.disownCanMonoTimes = function () {\n return capnp_ts_1.Struct.disown(this.getCanMonoTimes());\n };\n\n CarState.prototype.getCanMonoTimes = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Uint64List, this);\n };\n\n CarState.prototype.hasCanMonoTimes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarState.prototype.initCanMonoTimes = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Uint64List, length, this);\n };\n\n CarState.prototype.setCanMonoTimes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarState.prototype.toString = function () {\n return \"CarState_\" + _super.prototype.toString.call(this);\n };\n\n CarState.WheelSpeeds = CarState_WheelSpeeds;\n CarState.CruiseState = CarState_CruiseState;\n CarState.GearShifter = CarState_GearShifter;\n CarState.ButtonEvent = CarState_ButtonEvent;\n CarState._capnp = {\n displayName: \"CarState\",\n id: \"9da4fa09e052903c\",\n size: new capnp_ts_1.ObjectSize(48, 6)\n };\n return CarState;\n}(capnp_ts_1.Struct);\n\nexports.CarState = CarState;\nvar RadarData_Error;\n\n(function (RadarData_Error) {\n RadarData_Error[RadarData_Error[\"CAN_ERROR\"] = 0] = \"CAN_ERROR\";\n RadarData_Error[RadarData_Error[\"FAULT\"] = 1] = \"FAULT\";\n RadarData_Error[RadarData_Error[\"WRONG_CONFIG\"] = 2] = \"WRONG_CONFIG\";\n})(RadarData_Error = exports.RadarData_Error || (exports.RadarData_Error = {}));\n\nvar RadarData_RadarPoint =\n/** @class */\nfunction (_super) {\n __extends(RadarData_RadarPoint, _super);\n\n function RadarData_RadarPoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RadarData_RadarPoint.prototype.getTrackId = function () {\n return capnp_ts_1.Struct.getUint64(0, this);\n };\n\n RadarData_RadarPoint.prototype.setTrackId = function (value) {\n capnp_ts_1.Struct.setUint64(0, value, this);\n };\n\n RadarData_RadarPoint.prototype.getDRel = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n RadarData_RadarPoint.prototype.setDRel = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n RadarData_RadarPoint.prototype.getYRel = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n RadarData_RadarPoint.prototype.setYRel = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n RadarData_RadarPoint.prototype.getVRel = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n RadarData_RadarPoint.prototype.setVRel = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n RadarData_RadarPoint.prototype.getARel = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n RadarData_RadarPoint.prototype.setARel = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n RadarData_RadarPoint.prototype.getYvRel = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n RadarData_RadarPoint.prototype.setYvRel = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n RadarData_RadarPoint.prototype.getMeasured = function () {\n return capnp_ts_1.Struct.getBit(224, this);\n };\n\n RadarData_RadarPoint.prototype.setMeasured = function (value) {\n capnp_ts_1.Struct.setBit(224, value, this);\n };\n\n RadarData_RadarPoint.prototype.toString = function () {\n return \"RadarData_RadarPoint_\" + _super.prototype.toString.call(this);\n };\n\n RadarData_RadarPoint._capnp = {\n displayName: \"RadarPoint\",\n id: \"8ff333ebac1fdf36\",\n size: new capnp_ts_1.ObjectSize(32, 0)\n };\n return RadarData_RadarPoint;\n}(capnp_ts_1.Struct);\n\nexports.RadarData_RadarPoint = RadarData_RadarPoint;\n\nvar RadarData =\n/** @class */\nfunction (_super) {\n __extends(RadarData, _super);\n\n function RadarData() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n RadarData.prototype.adoptErrors = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarData.prototype.disownErrors = function () {\n return capnp_ts_1.Struct.disown(this.getErrors());\n };\n\n RadarData.prototype.getErrors = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Uint16List, this);\n };\n\n RadarData.prototype.hasErrors = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarData.prototype.initErrors = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Uint16List, length, this);\n };\n\n RadarData.prototype.setErrors = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n RadarData.prototype.adoptPoints = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarData.prototype.disownPoints = function () {\n return capnp_ts_1.Struct.disown(this.getPoints());\n };\n\n RadarData.prototype.getPoints = function () {\n return capnp_ts_1.Struct.getList(1, RadarData._Points, this);\n };\n\n RadarData.prototype.hasPoints = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarData.prototype.initPoints = function (length) {\n return capnp_ts_1.Struct.initList(1, RadarData._Points, length, this);\n };\n\n RadarData.prototype.setPoints = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n RadarData.prototype.adoptCanMonoTimes = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarData.prototype.disownCanMonoTimes = function () {\n return capnp_ts_1.Struct.disown(this.getCanMonoTimes());\n };\n\n RadarData.prototype.getCanMonoTimes = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Uint64List, this);\n };\n\n RadarData.prototype.hasCanMonoTimes = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarData.prototype.initCanMonoTimes = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Uint64List, length, this);\n };\n\n RadarData.prototype.setCanMonoTimes = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n RadarData.prototype.toString = function () {\n return \"RadarData_\" + _super.prototype.toString.call(this);\n };\n\n RadarData.Error = RadarData_Error;\n RadarData.RadarPoint = RadarData_RadarPoint;\n RadarData._capnp = {\n displayName: \"RadarData\",\n id: \"888ad6581cf0aacb\",\n size: new capnp_ts_1.ObjectSize(0, 3)\n };\n return RadarData;\n}(capnp_ts_1.Struct);\n\nexports.RadarData = RadarData;\n\nvar CarControl_Actuators =\n/** @class */\nfunction (_super) {\n __extends(CarControl_Actuators, _super);\n\n function CarControl_Actuators() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarControl_Actuators.prototype.getGas = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarControl_Actuators.prototype.setGas = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarControl_Actuators.prototype.getBrake = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarControl_Actuators.prototype.setBrake = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarControl_Actuators.prototype.getSteer = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarControl_Actuators.prototype.setSteer = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarControl_Actuators.prototype.getSteerAngle = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n CarControl_Actuators.prototype.setSteerAngle = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n CarControl_Actuators.prototype.toString = function () {\n return \"CarControl_Actuators_\" + _super.prototype.toString.call(this);\n };\n\n CarControl_Actuators._capnp = {\n displayName: \"Actuators\",\n id: \"e97275a919432828\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarControl_Actuators;\n}(capnp_ts_1.Struct);\n\nexports.CarControl_Actuators = CarControl_Actuators;\n\nvar CarControl_CruiseControl =\n/** @class */\nfunction (_super) {\n __extends(CarControl_CruiseControl, _super);\n\n function CarControl_CruiseControl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarControl_CruiseControl.prototype.getCancel = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarControl_CruiseControl.prototype.setCancel = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarControl_CruiseControl.prototype.getOverride = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n CarControl_CruiseControl.prototype.setOverride = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n CarControl_CruiseControl.prototype.getSpeedOverride = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarControl_CruiseControl.prototype.setSpeedOverride = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarControl_CruiseControl.prototype.getAccelOverride = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarControl_CruiseControl.prototype.setAccelOverride = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarControl_CruiseControl.prototype.toString = function () {\n return \"CarControl_CruiseControl_\" + _super.prototype.toString.call(this);\n };\n\n CarControl_CruiseControl._capnp = {\n displayName: \"CruiseControl\",\n id: \"b20e386e0e0ba8d3\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarControl_CruiseControl;\n}(capnp_ts_1.Struct);\n\nexports.CarControl_CruiseControl = CarControl_CruiseControl;\nvar CarControl_HUDControl_VisualAlert;\n\n(function (CarControl_HUDControl_VisualAlert) {\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"NONE\"] = 0] = \"NONE\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"FCW\"] = 1] = \"FCW\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"STEER_REQUIRED\"] = 2] = \"STEER_REQUIRED\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"BRAKE_PRESSED\"] = 3] = \"BRAKE_PRESSED\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"WRONG_GEAR\"] = 4] = \"WRONG_GEAR\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"SEATBELT_UNBUCKLED\"] = 5] = \"SEATBELT_UNBUCKLED\";\n CarControl_HUDControl_VisualAlert[CarControl_HUDControl_VisualAlert[\"SPEED_TOO_HIGH\"] = 6] = \"SPEED_TOO_HIGH\";\n})(CarControl_HUDControl_VisualAlert = exports.CarControl_HUDControl_VisualAlert || (exports.CarControl_HUDControl_VisualAlert = {}));\n\nvar CarControl_HUDControl_AudibleAlert;\n\n(function (CarControl_HUDControl_AudibleAlert) {\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"NONE\"] = 0] = \"NONE\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_ENGAGE\"] = 1] = \"CHIME_ENGAGE\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_DISENGAGE\"] = 2] = \"CHIME_DISENGAGE\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_ERROR\"] = 3] = \"CHIME_ERROR\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_WARNING1\"] = 4] = \"CHIME_WARNING1\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_WARNING2\"] = 5] = \"CHIME_WARNING2\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_WARNING_REPEAT\"] = 6] = \"CHIME_WARNING_REPEAT\";\n CarControl_HUDControl_AudibleAlert[CarControl_HUDControl_AudibleAlert[\"CHIME_PROMPT\"] = 7] = \"CHIME_PROMPT\";\n})(CarControl_HUDControl_AudibleAlert = exports.CarControl_HUDControl_AudibleAlert || (exports.CarControl_HUDControl_AudibleAlert = {}));\n\nvar CarControl_HUDControl =\n/** @class */\nfunction (_super) {\n __extends(CarControl_HUDControl, _super);\n\n function CarControl_HUDControl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarControl_HUDControl.prototype.getSpeedVisible = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarControl_HUDControl.prototype.setSpeedVisible = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarControl_HUDControl.prototype.getSetSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarControl_HUDControl.prototype.setSetSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarControl_HUDControl.prototype.getLanesVisible = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n CarControl_HUDControl.prototype.setLanesVisible = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n CarControl_HUDControl.prototype.getLeadVisible = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n CarControl_HUDControl.prototype.setLeadVisible = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n CarControl_HUDControl.prototype.getVisualAlert = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n CarControl_HUDControl.prototype.setVisualAlert = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n CarControl_HUDControl.prototype.getAudibleAlert = function () {\n return capnp_ts_1.Struct.getUint16(8, this);\n };\n\n CarControl_HUDControl.prototype.setAudibleAlert = function (value) {\n capnp_ts_1.Struct.setUint16(8, value, this);\n };\n\n CarControl_HUDControl.prototype.getRightLaneVisible = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n CarControl_HUDControl.prototype.setRightLaneVisible = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n CarControl_HUDControl.prototype.getLeftLaneVisible = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n CarControl_HUDControl.prototype.setLeftLaneVisible = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n CarControl_HUDControl.prototype.getRightLaneDepart = function () {\n return capnp_ts_1.Struct.getBit(5, this);\n };\n\n CarControl_HUDControl.prototype.setRightLaneDepart = function (value) {\n capnp_ts_1.Struct.setBit(5, value, this);\n };\n\n CarControl_HUDControl.prototype.getLeftLaneDepart = function () {\n return capnp_ts_1.Struct.getBit(6, this);\n };\n\n CarControl_HUDControl.prototype.setLeftLaneDepart = function (value) {\n capnp_ts_1.Struct.setBit(6, value, this);\n };\n\n CarControl_HUDControl.prototype.toString = function () {\n return \"CarControl_HUDControl_\" + _super.prototype.toString.call(this);\n };\n\n CarControl_HUDControl.VisualAlert = CarControl_HUDControl_VisualAlert;\n CarControl_HUDControl.AudibleAlert = CarControl_HUDControl_AudibleAlert;\n CarControl_HUDControl._capnp = {\n displayName: \"HUDControl\",\n id: \"d895c87c4eb03a38\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarControl_HUDControl;\n}(capnp_ts_1.Struct);\n\nexports.CarControl_HUDControl = CarControl_HUDControl;\n\nvar CarControl =\n/** @class */\nfunction (_super) {\n __extends(CarControl, _super);\n\n function CarControl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarControl.prototype.getEnabled = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarControl.prototype.setEnabled = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarControl.prototype.getActive = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n CarControl.prototype.setActive = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n CarControl.prototype.getGasDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarControl.prototype.setGasDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarControl.prototype.getBrakeDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarControl.prototype.setBrakeDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarControl.prototype.getSteeringTorqueDEPRECATED = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n CarControl.prototype.setSteeringTorqueDEPRECATED = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n CarControl.prototype.adoptActuators = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarControl.prototype.disownActuators = function () {\n return capnp_ts_1.Struct.disown(this.getActuators());\n };\n\n CarControl.prototype.getActuators = function () {\n return capnp_ts_1.Struct.getStruct(2, CarControl_Actuators, this);\n };\n\n CarControl.prototype.hasActuators = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarControl.prototype.initActuators = function () {\n return capnp_ts_1.Struct.initStructAt(2, CarControl_Actuators, this);\n };\n\n CarControl.prototype.setActuators = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarControl.prototype.adoptCruiseControl = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarControl.prototype.disownCruiseControl = function () {\n return capnp_ts_1.Struct.disown(this.getCruiseControl());\n };\n\n CarControl.prototype.getCruiseControl = function () {\n return capnp_ts_1.Struct.getStruct(0, CarControl_CruiseControl, this);\n };\n\n CarControl.prototype.hasCruiseControl = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarControl.prototype.initCruiseControl = function () {\n return capnp_ts_1.Struct.initStructAt(0, CarControl_CruiseControl, this);\n };\n\n CarControl.prototype.setCruiseControl = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarControl.prototype.adoptHudControl = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarControl.prototype.disownHudControl = function () {\n return capnp_ts_1.Struct.disown(this.getHudControl());\n };\n\n CarControl.prototype.getHudControl = function () {\n return capnp_ts_1.Struct.getStruct(1, CarControl_HUDControl, this);\n };\n\n CarControl.prototype.hasHudControl = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarControl.prototype.initHudControl = function () {\n return capnp_ts_1.Struct.initStructAt(1, CarControl_HUDControl, this);\n };\n\n CarControl.prototype.setHudControl = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarControl.prototype.toString = function () {\n return \"CarControl_\" + _super.prototype.toString.call(this);\n };\n\n CarControl.Actuators = CarControl_Actuators;\n CarControl.CruiseControl = CarControl_CruiseControl;\n CarControl.HUDControl = CarControl_HUDControl;\n CarControl._capnp = {\n displayName: \"CarControl\",\n id: \"f78829049ab814af\",\n size: new capnp_ts_1.ObjectSize(16, 3)\n };\n return CarControl;\n}(capnp_ts_1.Struct);\n\nexports.CarControl = CarControl;\n\nvar CarParams_LateralPIDTuning =\n/** @class */\nfunction (_super) {\n __extends(CarParams_LateralPIDTuning, _super);\n\n function CarParams_LateralPIDTuning() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams_LateralPIDTuning.prototype.adoptKpBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralPIDTuning.prototype.disownKpBP = function () {\n return capnp_ts_1.Struct.disown(this.getKpBP());\n };\n\n CarParams_LateralPIDTuning.prototype.getKpBP = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n CarParams_LateralPIDTuning.prototype.hasKpBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralPIDTuning.prototype.initKpBP = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n CarParams_LateralPIDTuning.prototype.setKpBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralPIDTuning.prototype.adoptKpV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralPIDTuning.prototype.disownKpV = function () {\n return capnp_ts_1.Struct.disown(this.getKpV());\n };\n\n CarParams_LateralPIDTuning.prototype.getKpV = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n CarParams_LateralPIDTuning.prototype.hasKpV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralPIDTuning.prototype.initKpV = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n CarParams_LateralPIDTuning.prototype.setKpV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralPIDTuning.prototype.adoptKiBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralPIDTuning.prototype.disownKiBP = function () {\n return capnp_ts_1.Struct.disown(this.getKiBP());\n };\n\n CarParams_LateralPIDTuning.prototype.getKiBP = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n CarParams_LateralPIDTuning.prototype.hasKiBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralPIDTuning.prototype.initKiBP = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n CarParams_LateralPIDTuning.prototype.setKiBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralPIDTuning.prototype.adoptKiV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralPIDTuning.prototype.disownKiV = function () {\n return capnp_ts_1.Struct.disown(this.getKiV());\n };\n\n CarParams_LateralPIDTuning.prototype.getKiV = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n CarParams_LateralPIDTuning.prototype.hasKiV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralPIDTuning.prototype.initKiV = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n CarParams_LateralPIDTuning.prototype.setKiV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralPIDTuning.prototype.getKf = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarParams_LateralPIDTuning.prototype.setKf = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarParams_LateralPIDTuning.prototype.toString = function () {\n return \"CarParams_LateralPIDTuning_\" + _super.prototype.toString.call(this);\n };\n\n CarParams_LateralPIDTuning._capnp = {\n displayName: \"LateralPIDTuning\",\n id: \"9622723fcbd14c2e\",\n size: new capnp_ts_1.ObjectSize(8, 4)\n };\n return CarParams_LateralPIDTuning;\n}(capnp_ts_1.Struct);\n\nexports.CarParams_LateralPIDTuning = CarParams_LateralPIDTuning;\n\nvar CarParams_LongitudinalPIDTuning =\n/** @class */\nfunction (_super) {\n __extends(CarParams_LongitudinalPIDTuning, _super);\n\n function CarParams_LongitudinalPIDTuning() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams_LongitudinalPIDTuning.prototype.adoptKpBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownKpBP = function () {\n return capnp_ts_1.Struct.disown(this.getKpBP());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getKpBP = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasKpBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initKpBP = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setKpBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.adoptKpV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownKpV = function () {\n return capnp_ts_1.Struct.disown(this.getKpV());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getKpV = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasKpV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initKpV = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setKpV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.adoptKiBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownKiBP = function () {\n return capnp_ts_1.Struct.disown(this.getKiBP());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getKiBP = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasKiBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initKiBP = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setKiBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.adoptKiV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownKiV = function () {\n return capnp_ts_1.Struct.disown(this.getKiV());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getKiV = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasKiV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initKiV = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setKiV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.adoptDeadzoneBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownDeadzoneBP = function () {\n return capnp_ts_1.Struct.disown(this.getDeadzoneBP());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getDeadzoneBP = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasDeadzoneBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initDeadzoneBP = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setDeadzoneBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.adoptDeadzoneV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.disownDeadzoneV = function () {\n return capnp_ts_1.Struct.disown(this.getDeadzoneV());\n };\n\n CarParams_LongitudinalPIDTuning.prototype.getDeadzoneV = function () {\n return capnp_ts_1.Struct.getList(5, capnp.Float32List, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.hasDeadzoneV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.initDeadzoneV = function (length) {\n return capnp_ts_1.Struct.initList(5, capnp.Float32List, length, this);\n };\n\n CarParams_LongitudinalPIDTuning.prototype.setDeadzoneV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams_LongitudinalPIDTuning.prototype.toString = function () {\n return \"CarParams_LongitudinalPIDTuning_\" + _super.prototype.toString.call(this);\n };\n\n CarParams_LongitudinalPIDTuning._capnp = {\n displayName: \"LongitudinalPIDTuning\",\n id: \"c342cefc303e9b8e\",\n size: new capnp_ts_1.ObjectSize(0, 6)\n };\n return CarParams_LongitudinalPIDTuning;\n}(capnp_ts_1.Struct);\n\nexports.CarParams_LongitudinalPIDTuning = CarParams_LongitudinalPIDTuning;\n\nvar CarParams_LateralINDITuning =\n/** @class */\nfunction (_super) {\n __extends(CarParams_LateralINDITuning, _super);\n\n function CarParams_LateralINDITuning() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams_LateralINDITuning.prototype.getOuterLoopGain = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarParams_LateralINDITuning.prototype.setOuterLoopGain = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarParams_LateralINDITuning.prototype.getInnerLoopGain = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarParams_LateralINDITuning.prototype.setInnerLoopGain = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarParams_LateralINDITuning.prototype.getTimeConstant = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarParams_LateralINDITuning.prototype.setTimeConstant = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarParams_LateralINDITuning.prototype.getActuatorEffectiveness = function () {\n return capnp_ts_1.Struct.getFloat32(12, this);\n };\n\n CarParams_LateralINDITuning.prototype.setActuatorEffectiveness = function (value) {\n capnp_ts_1.Struct.setFloat32(12, value, this);\n };\n\n CarParams_LateralINDITuning.prototype.toString = function () {\n return \"CarParams_LateralINDITuning_\" + _super.prototype.toString.call(this);\n };\n\n CarParams_LateralINDITuning._capnp = {\n displayName: \"LateralINDITuning\",\n id: \"a334472e045533b3\",\n size: new capnp_ts_1.ObjectSize(16, 0)\n };\n return CarParams_LateralINDITuning;\n}(capnp_ts_1.Struct);\n\nexports.CarParams_LateralINDITuning = CarParams_LateralINDITuning;\n\nvar CarParams_LateralLQRTuning =\n/** @class */\nfunction (_super) {\n __extends(CarParams_LateralLQRTuning, _super);\n\n function CarParams_LateralLQRTuning() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams_LateralLQRTuning.prototype.getScale = function () {\n return capnp_ts_1.Struct.getFloat32(0, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setScale = function (value) {\n capnp_ts_1.Struct.setFloat32(0, value, this);\n };\n\n CarParams_LateralLQRTuning.prototype.getKi = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setKi = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarParams_LateralLQRTuning.prototype.getDcGain = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setDcGain = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarParams_LateralLQRTuning.prototype.adoptA = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralLQRTuning.prototype.disownA = function () {\n return capnp_ts_1.Struct.disown(this.getA());\n };\n\n CarParams_LateralLQRTuning.prototype.getA = function () {\n return capnp_ts_1.Struct.getList(0, capnp.Float32List, this);\n };\n\n CarParams_LateralLQRTuning.prototype.hasA = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralLQRTuning.prototype.initA = function (length) {\n return capnp_ts_1.Struct.initList(0, capnp.Float32List, length, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setA = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(0, this));\n };\n\n CarParams_LateralLQRTuning.prototype.adoptB = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralLQRTuning.prototype.disownB = function () {\n return capnp_ts_1.Struct.disown(this.getB());\n };\n\n CarParams_LateralLQRTuning.prototype.getB = function () {\n return capnp_ts_1.Struct.getList(1, capnp.Float32List, this);\n };\n\n CarParams_LateralLQRTuning.prototype.hasB = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralLQRTuning.prototype.initB = function (length) {\n return capnp_ts_1.Struct.initList(1, capnp.Float32List, length, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setB = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(1, this));\n };\n\n CarParams_LateralLQRTuning.prototype.adoptC = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralLQRTuning.prototype.disownC = function () {\n return capnp_ts_1.Struct.disown(this.getC());\n };\n\n CarParams_LateralLQRTuning.prototype.getC = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n CarParams_LateralLQRTuning.prototype.hasC = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralLQRTuning.prototype.initC = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setC = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams_LateralLQRTuning.prototype.adoptK = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralLQRTuning.prototype.disownK = function () {\n return capnp_ts_1.Struct.disown(this.getK());\n };\n\n CarParams_LateralLQRTuning.prototype.getK = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n CarParams_LateralLQRTuning.prototype.hasK = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralLQRTuning.prototype.initK = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setK = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams_LateralLQRTuning.prototype.adoptL = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LateralLQRTuning.prototype.disownL = function () {\n return capnp_ts_1.Struct.disown(this.getL());\n };\n\n CarParams_LateralLQRTuning.prototype.getL = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n CarParams_LateralLQRTuning.prototype.hasL = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LateralLQRTuning.prototype.initL = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n CarParams_LateralLQRTuning.prototype.setL = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams_LateralLQRTuning.prototype.toString = function () {\n return \"CarParams_LateralLQRTuning_\" + _super.prototype.toString.call(this);\n };\n\n CarParams_LateralLQRTuning._capnp = {\n displayName: \"LateralLQRTuning\",\n id: \"9d151e3f28616a12\",\n size: new capnp_ts_1.ObjectSize(16, 5)\n };\n return CarParams_LateralLQRTuning;\n}(capnp_ts_1.Struct);\n\nexports.CarParams_LateralLQRTuning = CarParams_LateralLQRTuning;\nvar CarParams_SafetyModel;\n\n(function (CarParams_SafetyModel) {\n CarParams_SafetyModel[CarParams_SafetyModel[\"NO_OUTPUT\"] = 0] = \"NO_OUTPUT\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"HONDA\"] = 1] = \"HONDA\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"TOYOTA\"] = 2] = \"TOYOTA\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"ELM327\"] = 3] = \"ELM327\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"GM\"] = 4] = \"GM\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"HONDA_BOSCH\"] = 5] = \"HONDA_BOSCH\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"FORD\"] = 6] = \"FORD\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"CADILLAC\"] = 7] = \"CADILLAC\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"HYUNDAI\"] = 8] = \"HYUNDAI\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"CHRYSLER\"] = 9] = \"CHRYSLER\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"TESLA\"] = 10] = \"TESLA\";\n CarParams_SafetyModel[CarParams_SafetyModel[\"SUBARU\"] = 11] = \"SUBARU\";\n})(CarParams_SafetyModel = exports.CarParams_SafetyModel || (exports.CarParams_SafetyModel = {}));\n\nvar CarParams_SteerControlType;\n\n(function (CarParams_SteerControlType) {\n CarParams_SteerControlType[CarParams_SteerControlType[\"TORQUE\"] = 0] = \"TORQUE\";\n CarParams_SteerControlType[CarParams_SteerControlType[\"ANGLE\"] = 1] = \"ANGLE\";\n})(CarParams_SteerControlType = exports.CarParams_SteerControlType || (exports.CarParams_SteerControlType = {}));\n\nvar CarParams_LateralTuning_Which;\n\n(function (CarParams_LateralTuning_Which) {\n CarParams_LateralTuning_Which[CarParams_LateralTuning_Which[\"PID\"] = 0] = \"PID\";\n CarParams_LateralTuning_Which[CarParams_LateralTuning_Which[\"INDI\"] = 1] = \"INDI\";\n CarParams_LateralTuning_Which[CarParams_LateralTuning_Which[\"LQR\"] = 2] = \"LQR\";\n})(CarParams_LateralTuning_Which = exports.CarParams_LateralTuning_Which || (exports.CarParams_LateralTuning_Which = {}));\n\nvar CarParams_LateralTuning =\n/** @class */\nfunction (_super) {\n __extends(CarParams_LateralTuning, _super);\n\n function CarParams_LateralTuning() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams_LateralTuning.prototype.adoptPid = function (value) {\n capnp_ts_1.Struct.setUint16(14, 0, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.disownPid = function () {\n return capnp_ts_1.Struct.disown(this.getPid());\n };\n\n CarParams_LateralTuning.prototype.getPid = function () {\n capnp_ts_1.Struct.testWhich(\"pid\", capnp_ts_1.Struct.getUint16(14, this), 0, this);\n return capnp_ts_1.Struct.getStruct(9, CarParams_LateralPIDTuning, this);\n };\n\n CarParams_LateralTuning.prototype.hasPid = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.initPid = function () {\n capnp_ts_1.Struct.setUint16(14, 0, this);\n return capnp_ts_1.Struct.initStructAt(9, CarParams_LateralPIDTuning, this);\n };\n\n CarParams_LateralTuning.prototype.isPid = function () {\n return capnp_ts_1.Struct.getUint16(14, this) === 0;\n };\n\n CarParams_LateralTuning.prototype.setPid = function (value) {\n capnp_ts_1.Struct.setUint16(14, 0, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.adoptIndi = function (value) {\n capnp_ts_1.Struct.setUint16(14, 1, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.disownIndi = function () {\n return capnp_ts_1.Struct.disown(this.getIndi());\n };\n\n CarParams_LateralTuning.prototype.getIndi = function () {\n capnp_ts_1.Struct.testWhich(\"indi\", capnp_ts_1.Struct.getUint16(14, this), 1, this);\n return capnp_ts_1.Struct.getStruct(9, CarParams_LateralINDITuning, this);\n };\n\n CarParams_LateralTuning.prototype.hasIndi = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.initIndi = function () {\n capnp_ts_1.Struct.setUint16(14, 1, this);\n return capnp_ts_1.Struct.initStructAt(9, CarParams_LateralINDITuning, this);\n };\n\n CarParams_LateralTuning.prototype.isIndi = function () {\n return capnp_ts_1.Struct.getUint16(14, this) === 1;\n };\n\n CarParams_LateralTuning.prototype.setIndi = function (value) {\n capnp_ts_1.Struct.setUint16(14, 1, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.adoptLqr = function (value) {\n capnp_ts_1.Struct.setUint16(14, 2, this);\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.disownLqr = function () {\n return capnp_ts_1.Struct.disown(this.getLqr());\n };\n\n CarParams_LateralTuning.prototype.getLqr = function () {\n capnp_ts_1.Struct.testWhich(\"lqr\", capnp_ts_1.Struct.getUint16(14, this), 2, this);\n return capnp_ts_1.Struct.getStruct(9, CarParams_LateralLQRTuning, this);\n };\n\n CarParams_LateralTuning.prototype.hasLqr = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.initLqr = function () {\n capnp_ts_1.Struct.setUint16(14, 2, this);\n return capnp_ts_1.Struct.initStructAt(9, CarParams_LateralLQRTuning, this);\n };\n\n CarParams_LateralTuning.prototype.isLqr = function () {\n return capnp_ts_1.Struct.getUint16(14, this) === 2;\n };\n\n CarParams_LateralTuning.prototype.setLqr = function (value) {\n capnp_ts_1.Struct.setUint16(14, 2, this);\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(9, this));\n };\n\n CarParams_LateralTuning.prototype.toString = function () {\n return \"CarParams_LateralTuning_\" + _super.prototype.toString.call(this);\n };\n\n CarParams_LateralTuning.prototype.which = function () {\n return capnp_ts_1.Struct.getUint16(14, this);\n };\n\n CarParams_LateralTuning.PID = CarParams_LateralTuning_Which.PID;\n CarParams_LateralTuning.INDI = CarParams_LateralTuning_Which.INDI;\n CarParams_LateralTuning.LQR = CarParams_LateralTuning_Which.LQR;\n CarParams_LateralTuning._capnp = {\n displayName: \"lateralTuning\",\n id: \"93fc580a35339568\",\n size: new capnp_ts_1.ObjectSize(72, 11)\n };\n return CarParams_LateralTuning;\n}(capnp_ts_1.Struct);\n\nexports.CarParams_LateralTuning = CarParams_LateralTuning;\n\nvar CarParams =\n/** @class */\nfunction (_super) {\n __extends(CarParams, _super);\n\n function CarParams() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n\n CarParams.prototype.getCarName = function () {\n return capnp_ts_1.Struct.getText(0, this);\n };\n\n CarParams.prototype.setCarName = function (value) {\n capnp_ts_1.Struct.setText(0, value, this);\n };\n\n CarParams.prototype.getCarFingerprint = function () {\n return capnp_ts_1.Struct.getText(1, this);\n };\n\n CarParams.prototype.setCarFingerprint = function (value) {\n capnp_ts_1.Struct.setText(1, value, this);\n };\n\n CarParams.prototype.getEnableGasInterceptor = function () {\n return capnp_ts_1.Struct.getBit(0, this);\n };\n\n CarParams.prototype.setEnableGasInterceptor = function (value) {\n capnp_ts_1.Struct.setBit(0, value, this);\n };\n\n CarParams.prototype.getEnableCruise = function () {\n return capnp_ts_1.Struct.getBit(1, this);\n };\n\n CarParams.prototype.setEnableCruise = function (value) {\n capnp_ts_1.Struct.setBit(1, value, this);\n };\n\n CarParams.prototype.getEnableCamera = function () {\n return capnp_ts_1.Struct.getBit(2, this);\n };\n\n CarParams.prototype.setEnableCamera = function (value) {\n capnp_ts_1.Struct.setBit(2, value, this);\n };\n\n CarParams.prototype.getEnableDsu = function () {\n return capnp_ts_1.Struct.getBit(3, this);\n };\n\n CarParams.prototype.setEnableDsu = function (value) {\n capnp_ts_1.Struct.setBit(3, value, this);\n };\n\n CarParams.prototype.getEnableApgs = function () {\n return capnp_ts_1.Struct.getBit(4, this);\n };\n\n CarParams.prototype.setEnableApgs = function (value) {\n capnp_ts_1.Struct.setBit(4, value, this);\n };\n\n CarParams.prototype.getMinEnableSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(4, this);\n };\n\n CarParams.prototype.setMinEnableSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(4, value, this);\n };\n\n CarParams.prototype.getMinSteerSpeed = function () {\n return capnp_ts_1.Struct.getFloat32(8, this);\n };\n\n CarParams.prototype.setMinSteerSpeed = function (value) {\n capnp_ts_1.Struct.setFloat32(8, value, this);\n };\n\n CarParams.prototype.getSafetyModel = function () {\n return capnp_ts_1.Struct.getUint16(2, this);\n };\n\n CarParams.prototype.setSafetyModel = function (value) {\n capnp_ts_1.Struct.setUint16(2, value, this);\n };\n\n CarParams.prototype.getSafetyParam = function () {\n return capnp_ts_1.Struct.getInt16(12, this);\n };\n\n CarParams.prototype.setSafetyParam = function (value) {\n capnp_ts_1.Struct.setInt16(12, value, this);\n };\n\n CarParams.prototype.adoptSteerMaxBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams.prototype.disownSteerMaxBP = function () {\n return capnp_ts_1.Struct.disown(this.getSteerMaxBP());\n };\n\n CarParams.prototype.getSteerMaxBP = function () {\n return capnp_ts_1.Struct.getList(2, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasSteerMaxBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams.prototype.initSteerMaxBP = function (length) {\n return capnp_ts_1.Struct.initList(2, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setSteerMaxBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(2, this));\n };\n\n CarParams.prototype.adoptSteerMaxV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams.prototype.disownSteerMaxV = function () {\n return capnp_ts_1.Struct.disown(this.getSteerMaxV());\n };\n\n CarParams.prototype.getSteerMaxV = function () {\n return capnp_ts_1.Struct.getList(3, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasSteerMaxV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams.prototype.initSteerMaxV = function (length) {\n return capnp_ts_1.Struct.initList(3, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setSteerMaxV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(3, this));\n };\n\n CarParams.prototype.adoptGasMaxBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams.prototype.disownGasMaxBP = function () {\n return capnp_ts_1.Struct.disown(this.getGasMaxBP());\n };\n\n CarParams.prototype.getGasMaxBP = function () {\n return capnp_ts_1.Struct.getList(4, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasGasMaxBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams.prototype.initGasMaxBP = function (length) {\n return capnp_ts_1.Struct.initList(4, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setGasMaxBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(4, this));\n };\n\n CarParams.prototype.adoptGasMaxV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams.prototype.disownGasMaxV = function () {\n return capnp_ts_1.Struct.disown(this.getGasMaxV());\n };\n\n CarParams.prototype.getGasMaxV = function () {\n return capnp_ts_1.Struct.getList(5, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasGasMaxV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams.prototype.initGasMaxV = function (length) {\n return capnp_ts_1.Struct.initList(5, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setGasMaxV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(5, this));\n };\n\n CarParams.prototype.adoptBrakeMaxBP = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n CarParams.prototype.disownBrakeMaxBP = function () {\n return capnp_ts_1.Struct.disown(this.getBrakeMaxBP());\n };\n\n CarParams.prototype.getBrakeMaxBP = function () {\n return capnp_ts_1.Struct.getList(6, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasBrakeMaxBP = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(6, this));\n };\n\n CarParams.prototype.initBrakeMaxBP = function (length) {\n return capnp_ts_1.Struct.initList(6, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setBrakeMaxBP = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(6, this));\n };\n\n CarParams.prototype.adoptBrakeMaxV = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n CarParams.prototype.disownBrakeMaxV = function () {\n return capnp_ts_1.Struct.disown(this.getBrakeMaxV());\n };\n\n CarParams.prototype.getBrakeMaxV = function () {\n return capnp_ts_1.Struct.getList(7, capnp.Float32List, this);\n };\n\n CarParams.prototype.hasBrakeMaxV = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(7, this));\n };\n\n CarParams.prototype.initBrakeMaxV = function (length) {\n return capnp_ts_1.Struct.initList(7, capnp.Float32List, length, this);\n };\n\n CarParams.prototype.setBrakeMaxV = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(7, this));\n };\n\n CarParams.prototype.getMass = function () {\n return capnp_ts_1.Struct.getFloat32(16, this);\n };\n\n CarParams.prototype.setMass = function (value) {\n capnp_ts_1.Struct.setFloat32(16, value, this);\n };\n\n CarParams.prototype.getWheelbase = function () {\n return capnp_ts_1.Struct.getFloat32(20, this);\n };\n\n CarParams.prototype.setWheelbase = function (value) {\n capnp_ts_1.Struct.setFloat32(20, value, this);\n };\n\n CarParams.prototype.getCenterToFront = function () {\n return capnp_ts_1.Struct.getFloat32(24, this);\n };\n\n CarParams.prototype.setCenterToFront = function (value) {\n capnp_ts_1.Struct.setFloat32(24, value, this);\n };\n\n CarParams.prototype.getSteerRatio = function () {\n return capnp_ts_1.Struct.getFloat32(28, this);\n };\n\n CarParams.prototype.setSteerRatio = function (value) {\n capnp_ts_1.Struct.setFloat32(28, value, this);\n };\n\n CarParams.prototype.getSteerRatioRear = function () {\n return capnp_ts_1.Struct.getFloat32(32, this);\n };\n\n CarParams.prototype.setSteerRatioRear = function (value) {\n capnp_ts_1.Struct.setFloat32(32, value, this);\n };\n\n CarParams.prototype.getRotationalInertia = function () {\n return capnp_ts_1.Struct.getFloat32(36, this);\n };\n\n CarParams.prototype.setRotationalInertia = function (value) {\n capnp_ts_1.Struct.setFloat32(36, value, this);\n };\n\n CarParams.prototype.getTireStiffnessFront = function () {\n return capnp_ts_1.Struct.getFloat32(40, this);\n };\n\n CarParams.prototype.setTireStiffnessFront = function (value) {\n capnp_ts_1.Struct.setFloat32(40, value, this);\n };\n\n CarParams.prototype.getTireStiffnessRear = function () {\n return capnp_ts_1.Struct.getFloat32(44, this);\n };\n\n CarParams.prototype.setTireStiffnessRear = function (value) {\n capnp_ts_1.Struct.setFloat32(44, value, this);\n };\n\n CarParams.prototype.adoptLongitudinalTuning = function (value) {\n capnp_ts_1.Struct.adopt(value, capnp_ts_1.Struct.getPointer(8, this));\n };\n\n CarParams.prototype.disownLongitudinalTuning = function () {\n return capnp_ts_1.Struct.disown(this.getLongitudinalTuning());\n };\n\n CarParams.prototype.getLongitudinalTuning = function () {\n return capnp_ts_1.Struct.getStruct(8, CarParams_LongitudinalPIDTuning, this);\n };\n\n CarParams.prototype.hasLongitudinalTuning = function () {\n return !capnp_ts_1.Struct.isNull(capnp_ts_1.Struct.getPointer(8, this));\n };\n\n CarParams.prototype.initLongitudinalTuning = function () {\n return capnp_ts_1.Struct.initStructAt(8, CarParams_LongitudinalPIDTuning, this);\n };\n\n CarParams.prototype.setLongitudinalTuning = function (value) {\n capnp_ts_1.Struct.copyFrom(value, capnp_ts_1.Struct.getPointer(8, this));\n };\n\n CarParams.prototype.getLateralTuning = function () {\n return capnp_ts_1.Struct.getAs(CarParams_LateralTuning, this);\n };\n\n CarParams.prototype.initLateralTuning = function () {\n return capnp_ts_1.Struct.getAs(CarParams_LateralTuning, this);\n };\n\n CarParams.prototype.getSteerLimitAlert = function () {\n return capnp_ts_1.Struct.getBit(5, this);\n };\n\n CarParams.prototype.setSteerLimitAlert = function (value) {\n capnp_ts_1.Struct.setBit(5, value, this);\n };\n\n CarParams.prototype.getVEgoStopping = function () {\n return capnp_ts_1.Struct.getFloat32(48, this);\n };\n\n CarParams.prototype.setVEgoStopping = function (value) {\n capnp_ts_1.Struct.setFloat32(48, value, this);\n };\n\n CarParams.prototype.getDirectAccelControl = function () {\n return capnp_ts_1.Struct.getBit(6, this);\n };\n\n CarParams.prototype.setDirectAccelControl = function (value) {\n capnp_ts_1.Struct.setBit(6, value, this);\n };\n\n CarParams.prototype.getStoppingControl = function () {\n return capnp_ts_1.Struct.getBit(7, this);\n };\n\n CarParams.prototype.setStoppingControl = function (value) {\n capnp_ts_1.Struct.setBit(7, value, this);\n };\n\n CarParams.prototype.getStartAccel = function () {\n return capnp_ts_1.Struct.getFloat32(52, this);\n };\n\n CarParams.prototype.setStartAccel = function (value) {\n capnp_ts_1.Struct.setFloat32(52, value, this);\n };\n\n CarParams.prototype.getSteerRateCost = function () {\n return capnp_ts_1.Struct.getFloat32(56, this);\n };\n\n CarParams.prototype.setSteerRateCost = function (value) {\n capnp_ts_1.Struct.setFloat32(56, value, this);\n };\n\n CarParams.prototype.getSteerControlType = function () {\n return capnp_ts_1.Struct.getUint16(60, this);\n };\n\n CarParams.prototype.setSteerControlType = function (value) {\n capnp_ts_1.Struct.setUint16(60, value, this);\n };\n\n CarParams.prototype.getRadarOffCan = function () {\n return capnp_ts_1.Struct.getBit(8, this);\n };\n\n CarParams.prototype.setRadarOffCan = function (value) {\n capnp_ts_1.Struct.setBit(8, value, this);\n };\n\n CarParams.prototype.getSteerActuatorDelay = function () {\n return capnp_ts_1.Struct.getFloat32(64, this);\n };\n\n CarParams.prototype.setSteerActuatorDelay = function (value) {\n capnp_ts_1.Struct.setFloat32(64, value, this);\n };\n\n CarParams.prototype.getOpenpilotLongitudinalControl = function () {\n return capnp_ts_1.Struct.getBit(9, this);\n };\n\n CarParams.prototype.setOpenpilotLongitudinalControl = function (value) {\n capnp_ts_1.Struct.setBit(9, value, this);\n };\n\n CarParams.prototype.getCarVin = function () {\n return capnp_ts_1.Struct.getText(10, this);\n };\n\n CarParams.prototype.setCarVin = function (value) {\n capnp_ts_1.Struct.setText(10, value, this);\n };\n\n CarParams.prototype.getIsPandaBlack = function () {\n return capnp_ts_1.Struct.getBit(10, this);\n };\n\n CarParams.prototype.setIsPandaBlack = function (value) {\n capnp_ts_1.Struct.setBit(10, value, this);\n };\n\n CarParams.prototype.toString = function () {\n return \"CarParams_\" + _super.prototype.toString.call(this);\n };\n\n CarParams.LateralPIDTuning = CarParams_LateralPIDTuning;\n CarParams.LongitudinalPIDTuning = CarParams_LongitudinalPIDTuning;\n CarParams.LateralINDITuning = CarParams_LateralINDITuning;\n CarParams.LateralLQRTuning = CarParams_LateralLQRTuning;\n CarParams.SafetyModel = CarParams_SafetyModel;\n CarParams.SteerControlType = CarParams_SteerControlType;\n CarParams._capnp = {\n displayName: \"CarParams\",\n id: \"8c69372490aaa9da\",\n size: new capnp_ts_1.ObjectSize(72, 11)\n };\n return CarParams;\n}(capnp_ts_1.Struct);\n\nexports.CarParams = CarParams;\nCarState._Events = capnp.CompositeList(CarEvent);\nCarState._ButtonEvents = capnp.CompositeList(CarState_ButtonEvent);\nRadarData._Points = capnp.CompositeList(RadarData_RadarPoint);","'use strict';\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nmodule.exports = toJSON;\n\nfunction toJSON(capnpObject, struct) {\n if ((typeof capnpObject === 'undefined' ? 'undefined' : _typeof(capnpObject)) !== 'object' || !capnpObject._capnp) {\n return capnpObject;\n }\n\n if (Array.isArray(capnpObject)) {\n return capnpObject.map(toJSON);\n }\n\n struct = struct || capnpObject.constructor;\n var which = capnpObject.which ? capnpObject.which() : -1;\n var unionCapsName = null;\n var unionName = null;\n\n if (capnpObject.constructor._capnp.displayName.startsWith('List')) {\n return capnpObject.toArray().map(function (n) {\n return toJSON(n);\n });\n }\n\n var data = {};\n Object.keys(capnpObject.constructor.prototype).forEach(function (method) {\n if (!method.startsWith('get')) {\n return;\n }\n\n var name = method.substr(3);\n var capsName = '';\n var wasLower = false;\n\n for (var i = 0, len = name.length; i < len; ++i) {\n if (name[i].toLowerCase() !== name[i]) {\n if (wasLower) {\n capsName += '_';\n }\n\n wasLower = false;\n } else {\n wasLower = true;\n }\n\n capsName += name[i].toUpperCase();\n }\n\n if (which === struct[capsName]) {\n assignGetter(data, name, capnpObject, method);\n unionName = name;\n unionCapsName = capsName;\n } else if (struct[capsName] === undefined) {\n assignGetter(data, name, capnpObject, method);\n }\n });\n return data;\n}\n\nfunction assignGetter(data, name, capnpObject, method) {\n Object.defineProperty(data, name, {\n enumerable: true,\n configurable: true,\n get: function get() {\n var value = capnpObject[method]();\n\n switch (value.constructor.name) {\n case 'Uint64':\n case 'Int64':\n // just tostring all 64 bit ints\n value = value.toString();\n break;\n\n case 'Pointer':\n break;\n\n default:\n value = toJSON(value);\n break;\n }\n\n Object.defineProperty(data, name, {\n configurable: false,\n writable: false,\n value: value\n });\n return value;\n }\n });\n}","var through2 = require('through2');\n\nmodule.exports = StreamSelector;\n\nfunction StreamSelector(options) {\n if (!(this instanceof StreamSelector)) {\n return new StreamSelector(options);\n }\n\n var curBuffer = null;\n var destinationStream = null;\n var isDeciding = false;\n options = options || {};\n\n if (typeof options === 'function') {\n options = {\n selector: options\n };\n }\n\n return through2(transform, flush);\n\n function flush(cb) {\n if (destinationStream.flush) {\n destinationStream.flush(cb);\n } else {\n destinationStream.end();\n cb();\n }\n }\n\n function transform(chunk, encoding, done) {\n var _this = this;\n\n if (destinationStream) {\n destinationStream.write(chunk, encoding, done);\n return;\n } // haven't found a good destination stream yet, keep trying...\n // store data we're buffering so we can make sure to send it all when we find a stream\n // also, some streams might not be ready on the first packet, they might need 2 to classify\n\n\n if (!curBuffer) {\n curBuffer = chunk;\n } else {\n curBuffer = Buffer.concat([curBuffer, chunk]);\n }\n\n if (options.minBuffer && options.minBuffer > curBuffer.byteLength) {\n // wait for more data before deciding...\n return done();\n }\n\n if (isDeciding) {\n // keep buffering and waiting for the decision to come back.\n return done();\n }\n\n if (curBuffer.byteLength < 1) {\n // don't make them decide if we don't even have data yet...\n return done();\n }\n\n isDeciding = true;\n var stream = options.selector(curBuffer, encoding, function (err, stream) {\n if (err) {\n return _this.emit('error', err);\n }\n\n if (destinationStream) {\n return _this.emit('error', new Error('Cannot specific destination stream twice. You cannot use the callback and also return a value'));\n }\n\n if (!stream) {\n return _this.emit('error', new Error('Selector method did not return an error or a destination stream'));\n }\n\n assignStream(stream, encoding, _this);\n done();\n });\n\n if (stream) {\n assignStream(stream, encoding, this);\n done();\n }\n }\n\n function assignStream(stream, encoding, self) {\n if (destinationStream === stream) {\n return;\n }\n\n destinationStream = stream;\n\n if (curBuffer) {\n destinationStream.on('data', self.push.bind(self));\n destinationStream.write(curBuffer, encoding);\n curBuffer = null;\n }\n }\n}","'use strict';\n\nvar toBytes = function toBytes(s) {\n return Array.from(s).map(function (c) {\n return c.charCodeAt(0);\n });\n};\n\nvar xpiZipFilename = toBytes('META-INF/mozilla.rsa');\nvar oxmlContentTypes = toBytes('[Content_Types].xml');\nvar oxmlRels = toBytes('_rels/.rels');\n\nmodule.exports = function (input) {\n var buf = input instanceof Uint8Array ? input : new Uint8Array(input);\n\n if (!(buf && buf.length > 1)) {\n return null;\n }\n\n var check = function check(header, options) {\n options = Object.assign({\n offset: 0\n }, options);\n\n for (var i = 0; i < header.length; i++) {\n // If a bitmask is set\n if (options.mask) {\n // If header doesn't equal `buf` with bits masked off\n if (header[i] !== (options.mask[i] & buf[i + options.offset])) {\n return false;\n }\n } else if (header[i] !== buf[i + options.offset]) {\n return false;\n }\n }\n\n return true;\n };\n\n var checkString = function checkString(header, options) {\n return check(toBytes(header), options);\n };\n\n if (check([0xFF, 0xD8, 0xFF])) {\n return {\n ext: 'jpg',\n mime: 'image/jpeg'\n };\n }\n\n if (check([0x89, 0x50, 0x4E, 0x47, 0x0D, 0x0A, 0x1A, 0x0A])) {\n return {\n ext: 'png',\n mime: 'image/png'\n };\n }\n\n if (check([0x47, 0x49, 0x46])) {\n return {\n ext: 'gif',\n mime: 'image/gif'\n };\n }\n\n if (check([0x57, 0x45, 0x42, 0x50], {\n offset: 8\n })) {\n return {\n ext: 'webp',\n mime: 'image/webp'\n };\n }\n\n if (check([0x46, 0x4C, 0x49, 0x46])) {\n return {\n ext: 'flif',\n mime: 'image/flif'\n };\n } // Needs to be before `tif` check\n\n\n if ((check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) && check([0x43, 0x52], {\n offset: 8\n })) {\n return {\n ext: 'cr2',\n mime: 'image/x-canon-cr2'\n };\n }\n\n if (check([0x49, 0x49, 0x2A, 0x0]) || check([0x4D, 0x4D, 0x0, 0x2A])) {\n return {\n ext: 'tif',\n mime: 'image/tiff'\n };\n }\n\n if (check([0x42, 0x4D])) {\n return {\n ext: 'bmp',\n mime: 'image/bmp'\n };\n }\n\n if (check([0x49, 0x49, 0xBC])) {\n return {\n ext: 'jxr',\n mime: 'image/vnd.ms-photo'\n };\n }\n\n if (check([0x38, 0x42, 0x50, 0x53])) {\n return {\n ext: 'psd',\n mime: 'image/vnd.adobe.photoshop'\n };\n } // Zip-based file formats\n // Need to be before the `zip` check\n\n\n if (check([0x50, 0x4B, 0x3, 0x4])) {\n if (check([0x6D, 0x69, 0x6D, 0x65, 0x74, 0x79, 0x70, 0x65, 0x61, 0x70, 0x70, 0x6C, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6F, 0x6E, 0x2F, 0x65, 0x70, 0x75, 0x62, 0x2B, 0x7A, 0x69, 0x70], {\n offset: 30\n })) {\n return {\n ext: 'epub',\n mime: 'application/epub+zip'\n };\n } // Assumes signed `.xpi` from addons.mozilla.org\n\n\n if (check(xpiZipFilename, {\n offset: 30\n })) {\n return {\n ext: 'xpi',\n mime: 'application/x-xpinstall'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.text', {\n offset: 30\n })) {\n return {\n ext: 'odt',\n mime: 'application/vnd.oasis.opendocument.text'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.spreadsheet', {\n offset: 30\n })) {\n return {\n ext: 'ods',\n mime: 'application/vnd.oasis.opendocument.spreadsheet'\n };\n }\n\n if (checkString('mimetypeapplication/vnd.oasis.opendocument.presentation', {\n offset: 30\n })) {\n return {\n ext: 'odp',\n mime: 'application/vnd.oasis.opendocument.presentation'\n };\n } // https://github.com/file/file/blob/master/magic/Magdir/msooxml\n\n\n if (check(oxmlContentTypes, {\n offset: 30\n }) || check(oxmlRels, {\n offset: 30\n })) {\n var sliced = buf.subarray(4, 4 + 2000);\n\n var nextZipHeaderIndex = function nextZipHeaderIndex(arr) {\n return arr.findIndex(function (el, i, arr) {\n return arr[i] === 0x50 && arr[i + 1] === 0x4B && arr[i + 2] === 0x3 && arr[i + 3] === 0x4;\n });\n };\n\n var header2Pos = nextZipHeaderIndex(sliced);\n\n if (header2Pos !== -1) {\n var slicedAgain = buf.subarray(header2Pos + 8, header2Pos + 8 + 1000);\n var header3Pos = nextZipHeaderIndex(slicedAgain);\n\n if (header3Pos !== -1) {\n var offset = 8 + header2Pos + header3Pos + 30;\n\n if (checkString('word/', {\n offset: offset\n })) {\n return {\n ext: 'docx',\n mime: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'\n };\n }\n\n if (checkString('ppt/', {\n offset: offset\n })) {\n return {\n ext: 'pptx',\n mime: 'application/vnd.openxmlformats-officedocument.presentationml.presentation'\n };\n }\n\n if (checkString('xl/', {\n offset: offset\n })) {\n return {\n ext: 'xlsx',\n mime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'\n };\n }\n }\n }\n }\n }\n\n if (check([0x50, 0x4B]) && (buf[2] === 0x3 || buf[2] === 0x5 || buf[2] === 0x7) && (buf[3] === 0x4 || buf[3] === 0x6 || buf[3] === 0x8)) {\n return {\n ext: 'zip',\n mime: 'application/zip'\n };\n }\n\n if (check([0x75, 0x73, 0x74, 0x61, 0x72], {\n offset: 257\n })) {\n return {\n ext: 'tar',\n mime: 'application/x-tar'\n };\n }\n\n if (check([0x52, 0x61, 0x72, 0x21, 0x1A, 0x7]) && (buf[6] === 0x0 || buf[6] === 0x1)) {\n return {\n ext: 'rar',\n mime: 'application/x-rar-compressed'\n };\n }\n\n if (check([0x1F, 0x8B, 0x8])) {\n return {\n ext: 'gz',\n mime: 'application/gzip'\n };\n }\n\n if (check([0x42, 0x5A, 0x68])) {\n return {\n ext: 'bz2',\n mime: 'application/x-bzip2'\n };\n }\n\n if (check([0x37, 0x7A, 0xBC, 0xAF, 0x27, 0x1C])) {\n return {\n ext: '7z',\n mime: 'application/x-7z-compressed'\n };\n }\n\n if (check([0x78, 0x01])) {\n return {\n ext: 'dmg',\n mime: 'application/x-apple-diskimage'\n };\n }\n\n if (check([0x33, 0x67, 0x70, 0x35]) || // 3gp5\n check([0x0, 0x0, 0x0]) && check([0x66, 0x74, 0x79, 0x70], {\n offset: 4\n }) && (check([0x6D, 0x70, 0x34, 0x31], {\n offset: 8\n }) || // MP41\n check([0x6D, 0x70, 0x34, 0x32], {\n offset: 8\n }) || // MP42\n check([0x69, 0x73, 0x6F, 0x6D], {\n offset: 8\n }) || // ISOM\n check([0x69, 0x73, 0x6F, 0x32], {\n offset: 8\n }) || // ISO2\n check([0x6D, 0x6D, 0x70, 0x34], {\n offset: 8\n }) || // MMP4\n check([0x4D, 0x34, 0x56], {\n offset: 8\n }) || // M4V\n check([0x64, 0x61, 0x73, 0x68], {\n offset: 8\n }) // DASH\n )) {\n return {\n ext: 'mp4',\n mime: 'video/mp4'\n };\n }\n\n if (check([0x4D, 0x54, 0x68, 0x64])) {\n return {\n ext: 'mid',\n mime: 'audio/midi'\n };\n } // https://github.com/threatstack/libmagic/blob/master/magic/Magdir/matroska\n\n\n if (check([0x1A, 0x45, 0xDF, 0xA3])) {\n var _sliced = buf.subarray(4, 4 + 4096);\n\n var idPos = _sliced.findIndex(function (el, i, arr) {\n return arr[i] === 0x42 && arr[i + 1] === 0x82;\n });\n\n if (idPos !== -1) {\n var docTypePos = idPos + 3;\n\n var findDocType = function findDocType(type) {\n return Array.from(type).every(function (c, i) {\n return _sliced[docTypePos + i] === c.charCodeAt(0);\n });\n };\n\n if (findDocType('matroska')) {\n return {\n ext: 'mkv',\n mime: 'video/x-matroska'\n };\n }\n\n if (findDocType('webm')) {\n return {\n ext: 'webm',\n mime: 'video/webm'\n };\n }\n }\n }\n\n if (check([0x0, 0x0, 0x0, 0x14, 0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20]) || check([0x66, 0x72, 0x65, 0x65], {\n offset: 4\n }) || check([0x66, 0x74, 0x79, 0x70, 0x71, 0x74, 0x20, 0x20], {\n offset: 4\n }) || check([0x6D, 0x64, 0x61, 0x74], {\n offset: 4\n }) || // MJPEG\n check([0x77, 0x69, 0x64, 0x65], {\n offset: 4\n })) {\n return {\n ext: 'mov',\n mime: 'video/quicktime'\n };\n }\n\n if (check([0x52, 0x49, 0x46, 0x46]) && check([0x41, 0x56, 0x49], {\n offset: 8\n })) {\n return {\n ext: 'avi',\n mime: 'video/x-msvideo'\n };\n }\n\n if (check([0x30, 0x26, 0xB2, 0x75, 0x8E, 0x66, 0xCF, 0x11, 0xA6, 0xD9])) {\n return {\n ext: 'wmv',\n mime: 'video/x-ms-wmv'\n };\n }\n\n if (check([0x0, 0x0, 0x1, 0xBA]) || check([0x0, 0x0, 0x1, 0xB3])) {\n return {\n ext: 'mpg',\n mime: 'video/mpeg'\n };\n }\n\n if (check([0x66, 0x74, 0x79, 0x70, 0x33, 0x67], {\n offset: 4\n })) {\n return {\n ext: '3gp',\n mime: 'video/3gpp'\n };\n } // Check for MPEG header at different starting offsets\n\n\n for (var start = 0; start < 2 && start < buf.length - 16; start++) {\n if (check([0x49, 0x44, 0x33], {\n offset: start\n }) || // ID3 header\n check([0xFF, 0xE2], {\n offset: start,\n mask: [0xFF, 0xE2]\n }) // MPEG 1 or 2 Layer 3 header\n ) {\n return {\n ext: 'mp3',\n mime: 'audio/mpeg'\n };\n }\n\n if (check([0xFF, 0xE4], {\n offset: start,\n mask: [0xFF, 0xE4]\n }) // MPEG 1 or 2 Layer 2 header\n ) {\n return {\n ext: 'mp2',\n mime: 'audio/mpeg'\n };\n }\n }\n\n if (check([0x66, 0x74, 0x79, 0x70, 0x4D, 0x34, 0x41], {\n offset: 4\n }) || check([0x4D, 0x34, 0x41, 0x20])) {\n return {\n ext: 'm4a',\n mime: 'audio/m4a'\n };\n } // Needs to be before `ogg` check\n\n\n if (check([0x4F, 0x70, 0x75, 0x73, 0x48, 0x65, 0x61, 0x64], {\n offset: 28\n })) {\n return {\n ext: 'opus',\n mime: 'audio/opus'\n };\n } // If 'OggS' in first bytes, then OGG container\n\n\n if (check([0x4F, 0x67, 0x67, 0x53])) {\n // This is a OGG container\n // If ' theora' in header.\n if (check([0x80, 0x74, 0x68, 0x65, 0x6F, 0x72, 0x61], {\n offset: 28\n })) {\n return {\n ext: 'ogv',\n mime: 'video/ogg'\n };\n } // If '\\x01video' in header.\n\n\n if (check([0x01, 0x76, 0x69, 0x64, 0x65, 0x6F, 0x00], {\n offset: 28\n })) {\n return {\n ext: 'ogm',\n mime: 'video/ogg'\n };\n } // If ' FLAC' in header https://xiph.org/flac/faq.html\n\n\n if (check([0x7F, 0x46, 0x4C, 0x41, 0x43], {\n offset: 28\n })) {\n return {\n ext: 'oga',\n mime: 'audio/ogg'\n };\n } // 'Speex ' in header https://en.wikipedia.org/wiki/Speex\n\n\n if (check([0x53, 0x70, 0x65, 0x65, 0x78, 0x20, 0x20], {\n offset: 28\n })) {\n return {\n ext: 'spx',\n mime: 'audio/ogg'\n };\n } // If '\\x01vorbis' in header\n\n\n if (check([0x01, 0x76, 0x6F, 0x72, 0x62, 0x69, 0x73], {\n offset: 28\n })) {\n return {\n ext: 'ogg',\n mime: 'audio/ogg'\n };\n } // Default OGG container https://www.iana.org/assignments/media-types/application/ogg\n\n\n return {\n ext: 'ogx',\n mime: 'application/ogg'\n };\n }\n\n if (check([0x66, 0x4C, 0x61, 0x43])) {\n return {\n ext: 'flac',\n mime: 'audio/x-flac'\n };\n }\n\n if (check([0x52, 0x49, 0x46, 0x46]) && check([0x57, 0x41, 0x56, 0x45], {\n offset: 8\n })) {\n return {\n ext: 'wav',\n mime: 'audio/x-wav'\n };\n }\n\n if (check([0x23, 0x21, 0x41, 0x4D, 0x52, 0x0A])) {\n return {\n ext: 'amr',\n mime: 'audio/amr'\n };\n }\n\n if (check([0x25, 0x50, 0x44, 0x46])) {\n return {\n ext: 'pdf',\n mime: 'application/pdf'\n };\n }\n\n if (check([0x4D, 0x5A])) {\n return {\n ext: 'exe',\n mime: 'application/x-msdownload'\n };\n }\n\n if ((buf[0] === 0x43 || buf[0] === 0x46) && check([0x57, 0x53], {\n offset: 1\n })) {\n return {\n ext: 'swf',\n mime: 'application/x-shockwave-flash'\n };\n }\n\n if (check([0x7B, 0x5C, 0x72, 0x74, 0x66])) {\n return {\n ext: 'rtf',\n mime: 'application/rtf'\n };\n }\n\n if (check([0x00, 0x61, 0x73, 0x6D])) {\n return {\n ext: 'wasm',\n mime: 'application/wasm'\n };\n }\n\n if (check([0x77, 0x4F, 0x46, 0x46]) && (check([0x00, 0x01, 0x00, 0x00], {\n offset: 4\n }) || check([0x4F, 0x54, 0x54, 0x4F], {\n offset: 4\n }))) {\n return {\n ext: 'woff',\n mime: 'font/woff'\n };\n }\n\n if (check([0x77, 0x4F, 0x46, 0x32]) && (check([0x00, 0x01, 0x00, 0x00], {\n offset: 4\n }) || check([0x4F, 0x54, 0x54, 0x4F], {\n offset: 4\n }))) {\n return {\n ext: 'woff2',\n mime: 'font/woff2'\n };\n }\n\n if (check([0x4C, 0x50], {\n offset: 34\n }) && (check([0x00, 0x00, 0x01], {\n offset: 8\n }) || check([0x01, 0x00, 0x02], {\n offset: 8\n }) || check([0x02, 0x00, 0x02], {\n offset: 8\n }))) {\n return {\n ext: 'eot',\n mime: 'application/octet-stream'\n };\n }\n\n if (check([0x00, 0x01, 0x00, 0x00, 0x00])) {\n return {\n ext: 'ttf',\n mime: 'font/ttf'\n };\n }\n\n if (check([0x4F, 0x54, 0x54, 0x4F, 0x00])) {\n return {\n ext: 'otf',\n mime: 'font/otf'\n };\n }\n\n if (check([0x00, 0x00, 0x01, 0x00])) {\n return {\n ext: 'ico',\n mime: 'image/x-icon'\n };\n }\n\n if (check([0x00, 0x00, 0x02, 0x00])) {\n return {\n ext: 'cur',\n mime: 'image/x-icon'\n };\n }\n\n if (check([0x46, 0x4C, 0x56, 0x01])) {\n return {\n ext: 'flv',\n mime: 'video/x-flv'\n };\n }\n\n if (check([0x25, 0x21])) {\n return {\n ext: 'ps',\n mime: 'application/postscript'\n };\n }\n\n if (check([0xFD, 0x37, 0x7A, 0x58, 0x5A, 0x00])) {\n return {\n ext: 'xz',\n mime: 'application/x-xz'\n };\n }\n\n if (check([0x53, 0x51, 0x4C, 0x69])) {\n return {\n ext: 'sqlite',\n mime: 'application/x-sqlite3'\n };\n }\n\n if (check([0x4E, 0x45, 0x53, 0x1A])) {\n return {\n ext: 'nes',\n mime: 'application/x-nintendo-nes-rom'\n };\n }\n\n if (check([0x43, 0x72, 0x32, 0x34])) {\n return {\n ext: 'crx',\n mime: 'application/x-google-chrome-extension'\n };\n }\n\n if (check([0x4D, 0x53, 0x43, 0x46]) || check([0x49, 0x53, 0x63, 0x28])) {\n return {\n ext: 'cab',\n mime: 'application/vnd.ms-cab-compressed'\n };\n } // Needs to be before `ar` check\n\n\n if (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E, 0x0A, 0x64, 0x65, 0x62, 0x69, 0x61, 0x6E, 0x2D, 0x62, 0x69, 0x6E, 0x61, 0x72, 0x79])) {\n return {\n ext: 'deb',\n mime: 'application/x-deb'\n };\n }\n\n if (check([0x21, 0x3C, 0x61, 0x72, 0x63, 0x68, 0x3E])) {\n return {\n ext: 'ar',\n mime: 'application/x-unix-archive'\n };\n }\n\n if (check([0xED, 0xAB, 0xEE, 0xDB])) {\n return {\n ext: 'rpm',\n mime: 'application/x-rpm'\n };\n }\n\n if (check([0x1F, 0xA0]) || check([0x1F, 0x9D])) {\n return {\n ext: 'Z',\n mime: 'application/x-compress'\n };\n }\n\n if (check([0x4C, 0x5A, 0x49, 0x50])) {\n return {\n ext: 'lz',\n mime: 'application/x-lzip'\n };\n }\n\n if (check([0xD0, 0xCF, 0x11, 0xE0, 0xA1, 0xB1, 0x1A, 0xE1])) {\n return {\n ext: 'msi',\n mime: 'application/x-msi'\n };\n }\n\n if (check([0x06, 0x0E, 0x2B, 0x34, 0x02, 0x05, 0x01, 0x01, 0x0D, 0x01, 0x02, 0x01, 0x01, 0x02])) {\n return {\n ext: 'mxf',\n mime: 'application/mxf'\n };\n }\n\n if (check([0x47], {\n offset: 4\n }) && (check([0x47], {\n offset: 192\n }) || check([0x47], {\n offset: 196\n }))) {\n return {\n ext: 'mts',\n mime: 'video/mp2t'\n };\n }\n\n if (check([0x42, 0x4C, 0x45, 0x4E, 0x44, 0x45, 0x52])) {\n return {\n ext: 'blend',\n mime: 'application/x-blender'\n };\n }\n\n if (check([0x42, 0x50, 0x47, 0xFB])) {\n return {\n ext: 'bpg',\n mime: 'image/bpg'\n };\n }\n\n if (check([0x00, 0x00, 0x00, 0x0C, 0x6A, 0x50, 0x20, 0x20, 0x0D, 0x0A, 0x87, 0x0A])) {\n // JPEG-2000 family\n if (check([0x6A, 0x70, 0x32, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jp2',\n mime: 'image/jp2'\n };\n }\n\n if (check([0x6A, 0x70, 0x78, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jpx',\n mime: 'image/jpx'\n };\n }\n\n if (check([0x6A, 0x70, 0x6D, 0x20], {\n offset: 20\n })) {\n return {\n ext: 'jpm',\n mime: 'image/jpm'\n };\n }\n\n if (check([0x6D, 0x6A, 0x70, 0x32], {\n offset: 20\n })) {\n return {\n ext: 'mj2',\n mime: 'image/mj2'\n };\n }\n }\n\n if (check([0x46, 0x4F, 0x52, 0x4D, 0x00])) {\n return {\n ext: 'aif',\n mime: 'audio/aiff'\n };\n }\n\n if (checkString('<?xml ')) {\n return {\n ext: 'xml',\n mime: 'application/xml'\n };\n }\n\n if (check([0x42, 0x4F, 0x4F, 0x4B, 0x4D, 0x4F, 0x42, 0x49], {\n offset: 60\n })) {\n return {\n ext: 'mobi',\n mime: 'application/x-mobipocket-ebook'\n };\n } // File Type Box (https://en.wikipedia.org/wiki/ISO_base_media_file_format)\n\n\n if (check([0x66, 0x74, 0x79, 0x70], {\n offset: 4\n })) {\n if (check([0x6D, 0x69, 0x66, 0x31], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heif'\n };\n }\n\n if (check([0x6D, 0x73, 0x66, 0x31], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heif-sequence'\n };\n }\n\n if (check([0x68, 0x65, 0x69, 0x63], {\n offset: 8\n }) || check([0x68, 0x65, 0x69, 0x78], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heic'\n };\n }\n\n if (check([0x68, 0x65, 0x76, 0x63], {\n offset: 8\n }) || check([0x68, 0x65, 0x76, 0x78], {\n offset: 8\n })) {\n return {\n ext: 'heic',\n mime: 'image/heic-sequence'\n };\n }\n }\n\n return null;\n};","'use strict';\n\nvar Buffer = require('buffer').Buffer;\n\nvar Transform = require('stream').Transform;\n\nvar binding = require('./binding');\n\nvar util = require('util');\n\nvar assert = require('assert').ok;\n\nvar kMaxLength = require('buffer').kMaxLength;\n\nvar kRangeErrorMessage = 'Cannot create final Buffer. It would be larger ' + 'than 0x' + kMaxLength.toString(16) + ' bytes'; // zlib doesn't provide these, so kludge them in following the same\n// const naming scheme zlib uses.\n\nbinding.Z_MIN_WINDOWBITS = 8;\nbinding.Z_MAX_WINDOWBITS = 15;\nbinding.Z_DEFAULT_WINDOWBITS = 15; // fewer than 64 bytes per chunk is stupid.\n// technically it could work with as few as 8, but even 64 bytes\n// is absurdly low. Usually a MB or more is best.\n\nbinding.Z_MIN_CHUNK = 64;\nbinding.Z_MAX_CHUNK = Infinity;\nbinding.Z_DEFAULT_CHUNK = 16 * 1024;\nbinding.Z_MIN_MEMLEVEL = 1;\nbinding.Z_MAX_MEMLEVEL = 9;\nbinding.Z_DEFAULT_MEMLEVEL = 8;\nbinding.Z_MIN_LEVEL = -1;\nbinding.Z_MAX_LEVEL = 9;\nbinding.Z_DEFAULT_LEVEL = binding.Z_DEFAULT_COMPRESSION; // expose all the zlib constants\n\nvar bkeys = Object.keys(binding);\n\nfor (var bk = 0; bk < bkeys.length; bk++) {\n var bkey = bkeys[bk];\n\n if (bkey.match(/^Z/)) {\n Object.defineProperty(exports, bkey, {\n enumerable: true,\n value: binding[bkey],\n writable: false\n });\n }\n} // translation table for return codes.\n\n\nvar codes = {\n Z_OK: binding.Z_OK,\n Z_STREAM_END: binding.Z_STREAM_END,\n Z_NEED_DICT: binding.Z_NEED_DICT,\n Z_ERRNO: binding.Z_ERRNO,\n Z_STREAM_ERROR: binding.Z_STREAM_ERROR,\n Z_DATA_ERROR: binding.Z_DATA_ERROR,\n Z_MEM_ERROR: binding.Z_MEM_ERROR,\n Z_BUF_ERROR: binding.Z_BUF_ERROR,\n Z_VERSION_ERROR: binding.Z_VERSION_ERROR\n};\nvar ckeys = Object.keys(codes);\n\nfor (var ck = 0; ck < ckeys.length; ck++) {\n var ckey = ckeys[ck];\n codes[codes[ckey]] = ckey;\n}\n\nObject.defineProperty(exports, 'codes', {\n enumerable: true,\n value: Object.freeze(codes),\n writable: false\n});\nexports.Deflate = Deflate;\nexports.Inflate = Inflate;\nexports.Gzip = Gzip;\nexports.Gunzip = Gunzip;\nexports.DeflateRaw = DeflateRaw;\nexports.InflateRaw = InflateRaw;\nexports.Unzip = Unzip;\n\nexports.createDeflate = function (o) {\n return new Deflate(o);\n};\n\nexports.createInflate = function (o) {\n return new Inflate(o);\n};\n\nexports.createDeflateRaw = function (o) {\n return new DeflateRaw(o);\n};\n\nexports.createInflateRaw = function (o) {\n return new InflateRaw(o);\n};\n\nexports.createGzip = function (o) {\n return new Gzip(o);\n};\n\nexports.createGunzip = function (o) {\n return new Gunzip(o);\n};\n\nexports.createUnzip = function (o) {\n return new Unzip(o);\n}; // Convenience methods.\n// compress/decompress a string or buffer in one step.\n\n\nexports.deflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new Deflate(opts), buffer, callback);\n};\n\nexports.deflateSync = function (buffer, opts) {\n return zlibBufferSync(new Deflate(opts), buffer);\n};\n\nexports.gzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new Gzip(opts), buffer, callback);\n};\n\nexports.gzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gzip(opts), buffer);\n};\n\nexports.deflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new DeflateRaw(opts), buffer, callback);\n};\n\nexports.deflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new DeflateRaw(opts), buffer);\n};\n\nexports.unzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new Unzip(opts), buffer, callback);\n};\n\nexports.unzipSync = function (buffer, opts) {\n return zlibBufferSync(new Unzip(opts), buffer);\n};\n\nexports.inflate = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new Inflate(opts), buffer, callback);\n};\n\nexports.inflateSync = function (buffer, opts) {\n return zlibBufferSync(new Inflate(opts), buffer);\n};\n\nexports.gunzip = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new Gunzip(opts), buffer, callback);\n};\n\nexports.gunzipSync = function (buffer, opts) {\n return zlibBufferSync(new Gunzip(opts), buffer);\n};\n\nexports.inflateRaw = function (buffer, opts, callback) {\n if (typeof opts === 'function') {\n callback = opts;\n opts = {};\n }\n\n return zlibBuffer(new InflateRaw(opts), buffer, callback);\n};\n\nexports.inflateRawSync = function (buffer, opts) {\n return zlibBufferSync(new InflateRaw(opts), buffer);\n};\n\nfunction zlibBuffer(engine, buffer, callback) {\n var buffers = [];\n var nread = 0;\n engine.on('error', onError);\n engine.on('end', onEnd);\n engine.end(buffer);\n flow();\n\n function flow() {\n var chunk;\n\n while (null !== (chunk = engine.read())) {\n buffers.push(chunk);\n nread += chunk.length;\n }\n\n engine.once('readable', flow);\n }\n\n function onError(err) {\n engine.removeListener('end', onEnd);\n engine.removeListener('readable', flow);\n callback(err);\n }\n\n function onEnd() {\n var buf;\n var err = null;\n\n if (nread >= kMaxLength) {\n err = new RangeError(kRangeErrorMessage);\n } else {\n buf = Buffer.concat(buffers, nread);\n }\n\n buffers = [];\n engine.close();\n callback(err, buf);\n }\n}\n\nfunction zlibBufferSync(engine, buffer) {\n if (typeof buffer === 'string') buffer = Buffer.from(buffer);\n if (!Buffer.isBuffer(buffer)) throw new TypeError('Not a string or buffer');\n var flushFlag = engine._finishFlushFlag;\n return engine._processChunk(buffer, flushFlag);\n} // generic zlib\n// minimal 2-byte header\n\n\nfunction Deflate(opts) {\n if (!(this instanceof Deflate)) return new Deflate(opts);\n Zlib.call(this, opts, binding.DEFLATE);\n}\n\nfunction Inflate(opts) {\n if (!(this instanceof Inflate)) return new Inflate(opts);\n Zlib.call(this, opts, binding.INFLATE);\n} // gzip - bigger header, same deflate compression\n\n\nfunction Gzip(opts) {\n if (!(this instanceof Gzip)) return new Gzip(opts);\n Zlib.call(this, opts, binding.GZIP);\n}\n\nfunction Gunzip(opts) {\n if (!(this instanceof Gunzip)) return new Gunzip(opts);\n Zlib.call(this, opts, binding.GUNZIP);\n} // raw - no header\n\n\nfunction DeflateRaw(opts) {\n if (!(this instanceof DeflateRaw)) return new DeflateRaw(opts);\n Zlib.call(this, opts, binding.DEFLATERAW);\n}\n\nfunction InflateRaw(opts) {\n if (!(this instanceof InflateRaw)) return new InflateRaw(opts);\n Zlib.call(this, opts, binding.INFLATERAW);\n} // auto-detect header.\n\n\nfunction Unzip(opts) {\n if (!(this instanceof Unzip)) return new Unzip(opts);\n Zlib.call(this, opts, binding.UNZIP);\n}\n\nfunction isValidFlushFlag(flag) {\n return flag === binding.Z_NO_FLUSH || flag === binding.Z_PARTIAL_FLUSH || flag === binding.Z_SYNC_FLUSH || flag === binding.Z_FULL_FLUSH || flag === binding.Z_FINISH || flag === binding.Z_BLOCK;\n} // the Zlib class they all inherit from\n// This thing manages the queue of requests, and returns\n// true or false if there is anything in the queue when\n// you call the .write() method.\n\n\nfunction Zlib(opts, mode) {\n var _this = this;\n\n this._opts = opts = opts || {};\n this._chunkSize = opts.chunkSize || exports.Z_DEFAULT_CHUNK;\n Transform.call(this, opts);\n\n if (opts.flush && !isValidFlushFlag(opts.flush)) {\n throw new Error('Invalid flush flag: ' + opts.flush);\n }\n\n if (opts.finishFlush && !isValidFlushFlag(opts.finishFlush)) {\n throw new Error('Invalid flush flag: ' + opts.finishFlush);\n }\n\n this._flushFlag = opts.flush || binding.Z_NO_FLUSH;\n this._finishFlushFlag = typeof opts.finishFlush !== 'undefined' ? opts.finishFlush : binding.Z_FINISH;\n\n if (opts.chunkSize) {\n if (opts.chunkSize < exports.Z_MIN_CHUNK || opts.chunkSize > exports.Z_MAX_CHUNK) {\n throw new Error('Invalid chunk size: ' + opts.chunkSize);\n }\n }\n\n if (opts.windowBits) {\n if (opts.windowBits < exports.Z_MIN_WINDOWBITS || opts.windowBits > exports.Z_MAX_WINDOWBITS) {\n throw new Error('Invalid windowBits: ' + opts.windowBits);\n }\n }\n\n if (opts.level) {\n if (opts.level < exports.Z_MIN_LEVEL || opts.level > exports.Z_MAX_LEVEL) {\n throw new Error('Invalid compression level: ' + opts.level);\n }\n }\n\n if (opts.memLevel) {\n if (opts.memLevel < exports.Z_MIN_MEMLEVEL || opts.memLevel > exports.Z_MAX_MEMLEVEL) {\n throw new Error('Invalid memLevel: ' + opts.memLevel);\n }\n }\n\n if (opts.strategy) {\n if (opts.strategy != exports.Z_FILTERED && opts.strategy != exports.Z_HUFFMAN_ONLY && opts.strategy != exports.Z_RLE && opts.strategy != exports.Z_FIXED && opts.strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new Error('Invalid strategy: ' + opts.strategy);\n }\n }\n\n if (opts.dictionary) {\n if (!Buffer.isBuffer(opts.dictionary)) {\n throw new Error('Invalid dictionary: it should be a Buffer instance');\n }\n }\n\n this._handle = new binding.Zlib(mode);\n var self = this;\n this._hadError = false;\n\n this._handle.onerror = function (message, errno) {\n // there is no way to cleanly recover.\n // continuing only obscures problems.\n _close(self);\n\n self._hadError = true;\n var error = new Error(message);\n error.errno = errno;\n error.code = exports.codes[errno];\n self.emit('error', error);\n };\n\n var level = exports.Z_DEFAULT_COMPRESSION;\n if (typeof opts.level === 'number') level = opts.level;\n var strategy = exports.Z_DEFAULT_STRATEGY;\n if (typeof opts.strategy === 'number') strategy = opts.strategy;\n\n this._handle.init(opts.windowBits || exports.Z_DEFAULT_WINDOWBITS, level, opts.memLevel || exports.Z_DEFAULT_MEMLEVEL, strategy, opts.dictionary);\n\n this._buffer = Buffer.allocUnsafe(this._chunkSize);\n this._offset = 0;\n this._level = level;\n this._strategy = strategy;\n this.once('end', this.close);\n Object.defineProperty(this, '_closed', {\n get: function get() {\n return !_this._handle;\n },\n configurable: true,\n enumerable: true\n });\n}\n\nutil.inherits(Zlib, Transform);\n\nZlib.prototype.params = function (level, strategy, callback) {\n if (level < exports.Z_MIN_LEVEL || level > exports.Z_MAX_LEVEL) {\n throw new RangeError('Invalid compression level: ' + level);\n }\n\n if (strategy != exports.Z_FILTERED && strategy != exports.Z_HUFFMAN_ONLY && strategy != exports.Z_RLE && strategy != exports.Z_FIXED && strategy != exports.Z_DEFAULT_STRATEGY) {\n throw new TypeError('Invalid strategy: ' + strategy);\n }\n\n if (this._level !== level || this._strategy !== strategy) {\n var self = this;\n this.flush(binding.Z_SYNC_FLUSH, function () {\n assert(self._handle, 'zlib binding closed');\n\n self._handle.params(level, strategy);\n\n if (!self._hadError) {\n self._level = level;\n self._strategy = strategy;\n if (callback) callback();\n }\n });\n } else {\n process.nextTick(callback);\n }\n};\n\nZlib.prototype.reset = function () {\n assert(this._handle, 'zlib binding closed');\n return this._handle.reset();\n}; // This is the _flush function called by the transform class,\n// internally, when the last chunk has been written.\n\n\nZlib.prototype._flush = function (callback) {\n this._transform(Buffer.alloc(0), '', callback);\n};\n\nZlib.prototype.flush = function (kind, callback) {\n var _this2 = this;\n\n var ws = this._writableState;\n\n if (typeof kind === 'function' || kind === undefined && !callback) {\n callback = kind;\n kind = binding.Z_FULL_FLUSH;\n }\n\n if (ws.ended) {\n if (callback) process.nextTick(callback);\n } else if (ws.ending) {\n if (callback) this.once('end', callback);\n } else if (ws.needDrain) {\n if (callback) {\n this.once('drain', function () {\n return _this2.flush(kind, callback);\n });\n }\n } else {\n this._flushFlag = kind;\n this.write(Buffer.alloc(0), '', callback);\n }\n};\n\nZlib.prototype.close = function (callback) {\n _close(this, callback);\n\n process.nextTick(emitCloseNT, this);\n};\n\nfunction _close(engine, callback) {\n if (callback) process.nextTick(callback); // Caller may invoke .close after a zlib error (which will null _handle).\n\n if (!engine._handle) return;\n\n engine._handle.close();\n\n engine._handle = null;\n}\n\nfunction emitCloseNT(self) {\n self.emit('close');\n}\n\nZlib.prototype._transform = function (chunk, encoding, cb) {\n var flushFlag;\n var ws = this._writableState;\n var ending = ws.ending || ws.ended;\n var last = ending && (!chunk || ws.length === chunk.length);\n if (chunk !== null && !Buffer.isBuffer(chunk)) return cb(new Error('invalid input'));\n if (!this._handle) return cb(new Error('zlib binding closed')); // If it's the last chunk, or a final flush, we use the Z_FINISH flush flag\n // (or whatever flag was provided using opts.finishFlush).\n // If it's explicitly flushing at some other time, then we use\n // Z_FULL_FLUSH. Otherwise, use Z_NO_FLUSH for maximum compression\n // goodness.\n\n if (last) flushFlag = this._finishFlushFlag;else {\n flushFlag = this._flushFlag; // once we've flushed the last of the queue, stop flushing and\n // go back to the normal behavior.\n\n if (chunk.length >= ws.length) {\n this._flushFlag = this._opts.flush || binding.Z_NO_FLUSH;\n }\n }\n\n this._processChunk(chunk, flushFlag, cb);\n};\n\nZlib.prototype._processChunk = function (chunk, flushFlag, cb) {\n var availInBefore = chunk && chunk.length;\n var availOutBefore = this._chunkSize - this._offset;\n var inOff = 0;\n var self = this;\n var async = typeof cb === 'function';\n\n if (!async) {\n var buffers = [];\n var nread = 0;\n var error;\n this.on('error', function (er) {\n error = er;\n });\n assert(this._handle, 'zlib binding closed');\n\n do {\n var res = this._handle.writeSync(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n } while (!this._hadError && callback(res[0], res[1]));\n\n if (this._hadError) {\n throw error;\n }\n\n if (nread >= kMaxLength) {\n _close(this);\n\n throw new RangeError(kRangeErrorMessage);\n }\n\n var buf = Buffer.concat(buffers, nread);\n\n _close(this);\n\n return buf;\n }\n\n assert(this._handle, 'zlib binding closed');\n\n var req = this._handle.write(flushFlag, chunk, // in\n inOff, // in_off\n availInBefore, // in_len\n this._buffer, // out\n this._offset, //out_off\n availOutBefore); // out_len\n\n\n req.buffer = chunk;\n req.callback = callback;\n\n function callback(availInAfter, availOutAfter) {\n // When the callback is used in an async write, the callback's\n // context is the `req` object that was created. The req object\n // is === this._handle, and that's why it's important to null\n // out the values after they are done being used. `this._handle`\n // can stay in memory longer than the callback and buffer are needed.\n if (this) {\n this.buffer = null;\n this.callback = null;\n }\n\n if (self._hadError) return;\n var have = availOutBefore - availOutAfter;\n assert(have >= 0, 'have should not go down');\n\n if (have > 0) {\n var out = self._buffer.slice(self._offset, self._offset + have);\n\n self._offset += have; // serve some output to the consumer.\n\n if (async) {\n self.push(out);\n } else {\n buffers.push(out);\n nread += out.length;\n }\n } // exhausted the output buffer, or used all the input create a new one.\n\n\n if (availOutAfter === 0 || self._offset >= self._chunkSize) {\n availOutBefore = self._chunkSize;\n self._offset = 0;\n self._buffer = Buffer.allocUnsafe(self._chunkSize);\n }\n\n if (availOutAfter === 0) {\n // Not actually done. Need to reprocess.\n // Also, update the availInBefore to the availInAfter value,\n // so that if we have to hit it a third (fourth, etc.) time,\n // it'll have the correct byte counts.\n inOff += availInBefore - availInAfter;\n availInBefore = availInAfter;\n if (!async) return true;\n\n var newReq = self._handle.write(flushFlag, chunk, inOff, availInBefore, self._buffer, self._offset, self._chunkSize);\n\n newReq.callback = callback; // this same function\n\n newReq.buffer = chunk;\n return;\n }\n\n if (!async) return false; // finished with the chunk.\n\n cb();\n }\n};\n\nutil.inherits(Deflate, Zlib);\nutil.inherits(Inflate, Zlib);\nutil.inherits(Gzip, Zlib);\nutil.inherits(Gunzip, Zlib);\nutil.inherits(DeflateRaw, Zlib);\nutil.inherits(InflateRaw, Zlib);\nutil.inherits(Unzip, Zlib);","'use strict';\n/* eslint camelcase: \"off\" */\n\nvar assert = require('assert');\n\nvar Zstream = require('pako/lib/zlib/zstream');\n\nvar zlib_deflate = require('pako/lib/zlib/deflate.js');\n\nvar zlib_inflate = require('pako/lib/zlib/inflate.js');\n\nvar constants = require('pako/lib/zlib/constants');\n\nfor (var key in constants) {\n exports[key] = constants[key];\n} // zlib modes\n\n\nexports.NONE = 0;\nexports.DEFLATE = 1;\nexports.INFLATE = 2;\nexports.GZIP = 3;\nexports.GUNZIP = 4;\nexports.DEFLATERAW = 5;\nexports.INFLATERAW = 6;\nexports.UNZIP = 7;\nvar GZIP_HEADER_ID1 = 0x1f;\nvar GZIP_HEADER_ID2 = 0x8b;\n/**\n * Emulate Node's zlib C++ layer for use by the JS layer in index.js\n */\n\nfunction Zlib(mode) {\n if (typeof mode !== 'number' || mode < exports.DEFLATE || mode > exports.UNZIP) {\n throw new TypeError('Bad argument');\n }\n\n this.dictionary = null;\n this.err = 0;\n this.flush = 0;\n this.init_done = false;\n this.level = 0;\n this.memLevel = 0;\n this.mode = mode;\n this.strategy = 0;\n this.windowBits = 0;\n this.write_in_progress = false;\n this.pending_close = false;\n this.gzip_id_bytes_read = 0;\n}\n\nZlib.prototype.close = function () {\n if (this.write_in_progress) {\n this.pending_close = true;\n return;\n }\n\n this.pending_close = false;\n assert(this.init_done, 'close before init');\n assert(this.mode <= exports.UNZIP);\n\n if (this.mode === exports.DEFLATE || this.mode === exports.GZIP || this.mode === exports.DEFLATERAW) {\n zlib_deflate.deflateEnd(this.strm);\n } else if (this.mode === exports.INFLATE || this.mode === exports.GUNZIP || this.mode === exports.INFLATERAW || this.mode === exports.UNZIP) {\n zlib_inflate.inflateEnd(this.strm);\n }\n\n this.mode = exports.NONE;\n this.dictionary = null;\n};\n\nZlib.prototype.write = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(true, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype.writeSync = function (flush, input, in_off, in_len, out, out_off, out_len) {\n return this._write(false, flush, input, in_off, in_len, out, out_off, out_len);\n};\n\nZlib.prototype._write = function (async, flush, input, in_off, in_len, out, out_off, out_len) {\n assert.equal(arguments.length, 8);\n assert(this.init_done, 'write before init');\n assert(this.mode !== exports.NONE, 'already finalized');\n assert.equal(false, this.write_in_progress, 'write already in progress');\n assert.equal(false, this.pending_close, 'close is pending');\n this.write_in_progress = true;\n assert.equal(false, flush === undefined, 'must provide flush value');\n this.write_in_progress = true;\n\n if (flush !== exports.Z_NO_FLUSH && flush !== exports.Z_PARTIAL_FLUSH && flush !== exports.Z_SYNC_FLUSH && flush !== exports.Z_FULL_FLUSH && flush !== exports.Z_FINISH && flush !== exports.Z_BLOCK) {\n throw new Error('Invalid flush value');\n }\n\n if (input == null) {\n input = Buffer.alloc(0);\n in_len = 0;\n in_off = 0;\n }\n\n this.strm.avail_in = in_len;\n this.strm.input = input;\n this.strm.next_in = in_off;\n this.strm.avail_out = out_len;\n this.strm.output = out;\n this.strm.next_out = out_off;\n this.flush = flush;\n\n if (!async) {\n // sync version\n this._process();\n\n if (this._checkError()) {\n return this._afterSync();\n }\n\n return;\n } // async version\n\n\n var self = this;\n process.nextTick(function () {\n self._process();\n\n self._after();\n });\n return this;\n};\n\nZlib.prototype._afterSync = function () {\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false;\n return [avail_in, avail_out];\n};\n\nZlib.prototype._process = function () {\n var next_expected_header_byte = null; // If the avail_out is left at 0, then it means that it ran out\n // of room. If there was avail_out left over, then it means\n // that all of the input was consumed.\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflate(this.strm, this.flush);\n break;\n\n case exports.UNZIP:\n if (this.strm.avail_in > 0) {\n next_expected_header_byte = this.strm.next_in;\n }\n\n switch (this.gzip_id_bytes_read) {\n case 0:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID1) {\n this.gzip_id_bytes_read = 1;\n next_expected_header_byte++;\n\n if (this.strm.avail_in === 1) {\n // The only available byte was already read.\n break;\n }\n } else {\n this.mode = exports.INFLATE;\n break;\n }\n\n // fallthrough\n\n case 1:\n if (next_expected_header_byte === null) {\n break;\n }\n\n if (this.strm.input[next_expected_header_byte] === GZIP_HEADER_ID2) {\n this.gzip_id_bytes_read = 2;\n this.mode = exports.GUNZIP;\n } else {\n // There is no actual difference between INFLATE and INFLATERAW\n // (after initialization).\n this.mode = exports.INFLATE;\n }\n\n break;\n\n default:\n throw new Error('invalid number of gzip magic number bytes read');\n }\n\n // fallthrough\n\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n this.err = zlib_inflate.inflate(this.strm, this.flush // If data was encoded with dictionary\n );\n\n if (this.err === exports.Z_NEED_DICT && this.dictionary) {\n // Load it\n this.err = zlib_inflate.inflateSetDictionary(this.strm, this.dictionary);\n\n if (this.err === exports.Z_OK) {\n // And try to decode again\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n } else if (this.err === exports.Z_DATA_ERROR) {\n // Both inflateSetDictionary() and inflate() return Z_DATA_ERROR.\n // Make it possible for After() to tell a bad dictionary from bad\n // input.\n this.err = exports.Z_NEED_DICT;\n }\n }\n\n while (this.strm.avail_in > 0 && this.mode === exports.GUNZIP && this.err === exports.Z_STREAM_END && this.strm.next_in[0] !== 0x00) {\n // Bytes remain in input buffer. Perhaps this is another compressed\n // member in the same archive, or just trailing garbage.\n // Trailing zero bytes are okay, though, since they are frequently\n // used for padding.\n this.reset();\n this.err = zlib_inflate.inflate(this.strm, this.flush);\n }\n\n break;\n\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n};\n\nZlib.prototype._checkError = function () {\n // Acceptable error states depend on the type of zlib stream.\n switch (this.err) {\n case exports.Z_OK:\n case exports.Z_BUF_ERROR:\n if (this.strm.avail_out !== 0 && this.flush === exports.Z_FINISH) {\n this._error('unexpected end of file');\n\n return false;\n }\n\n break;\n\n case exports.Z_STREAM_END:\n // normal statuses, not fatal\n break;\n\n case exports.Z_NEED_DICT:\n if (this.dictionary == null) {\n this._error('Missing dictionary');\n } else {\n this._error('Bad dictionary');\n }\n\n return false;\n\n default:\n // something else.\n this._error('Zlib error');\n\n return false;\n }\n\n return true;\n};\n\nZlib.prototype._after = function () {\n if (!this._checkError()) {\n return;\n }\n\n var avail_out = this.strm.avail_out;\n var avail_in = this.strm.avail_in;\n this.write_in_progress = false; // call the write() cb\n\n this.callback(avail_in, avail_out);\n\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype._error = function (message) {\n if (this.strm.msg) {\n message = this.strm.msg;\n }\n\n this.onerror(message, this.err // no hope of rescue.\n );\n this.write_in_progress = false;\n\n if (this.pending_close) {\n this.close();\n }\n};\n\nZlib.prototype.init = function (windowBits, level, memLevel, strategy, dictionary) {\n assert(arguments.length === 4 || arguments.length === 5, 'init(windowBits, level, memLevel, strategy, [dictionary])');\n assert(windowBits >= 8 && windowBits <= 15, 'invalid windowBits');\n assert(level >= -1 && level <= 9, 'invalid compression level');\n assert(memLevel >= 1 && memLevel <= 9, 'invalid memlevel');\n assert(strategy === exports.Z_FILTERED || strategy === exports.Z_HUFFMAN_ONLY || strategy === exports.Z_RLE || strategy === exports.Z_FIXED || strategy === exports.Z_DEFAULT_STRATEGY, 'invalid strategy');\n\n this._init(level, windowBits, memLevel, strategy, dictionary);\n\n this._setDictionary();\n};\n\nZlib.prototype.params = function () {\n throw new Error('deflateParams Not supported');\n};\n\nZlib.prototype.reset = function () {\n this._reset();\n\n this._setDictionary();\n};\n\nZlib.prototype._init = function (level, windowBits, memLevel, strategy, dictionary) {\n this.level = level;\n this.windowBits = windowBits;\n this.memLevel = memLevel;\n this.strategy = strategy;\n this.flush = exports.Z_NO_FLUSH;\n this.err = exports.Z_OK;\n\n if (this.mode === exports.GZIP || this.mode === exports.GUNZIP) {\n this.windowBits += 16;\n }\n\n if (this.mode === exports.UNZIP) {\n this.windowBits += 32;\n }\n\n if (this.mode === exports.DEFLATERAW || this.mode === exports.INFLATERAW) {\n this.windowBits = -1 * this.windowBits;\n }\n\n this.strm = new Zstream();\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.GZIP:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateInit2(this.strm, this.level, exports.Z_DEFLATED, this.windowBits, this.memLevel, this.strategy);\n break;\n\n case exports.INFLATE:\n case exports.GUNZIP:\n case exports.INFLATERAW:\n case exports.UNZIP:\n this.err = zlib_inflate.inflateInit2(this.strm, this.windowBits);\n break;\n\n default:\n throw new Error('Unknown mode ' + this.mode);\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Init error');\n }\n\n this.dictionary = dictionary;\n this.write_in_progress = false;\n this.init_done = true;\n};\n\nZlib.prototype._setDictionary = function () {\n if (this.dictionary == null) {\n return;\n }\n\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n this.err = zlib_deflate.deflateSetDictionary(this.strm, this.dictionary);\n break;\n\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to set dictionary');\n }\n};\n\nZlib.prototype._reset = function () {\n this.err = exports.Z_OK;\n\n switch (this.mode) {\n case exports.DEFLATE:\n case exports.DEFLATERAW:\n case exports.GZIP:\n this.err = zlib_deflate.deflateReset(this.strm);\n break;\n\n case exports.INFLATE:\n case exports.INFLATERAW:\n case exports.GUNZIP:\n this.err = zlib_inflate.inflateReset(this.strm);\n break;\n\n default:\n break;\n }\n\n if (this.err !== exports.Z_OK) {\n this._error('Failed to reset stream');\n }\n};\n\nexports.Zlib = Zlib;","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n\n this.next_in = 0;\n /* number of bytes available at input */\n\n this.avail_in = 0;\n /* total number of input bytes read so far */\n\n this.total_in = 0;\n /* next output byte should be put there */\n\n this.output = null; // JS specific, because we have no pointers\n\n this.next_out = 0;\n /* remaining free space at output */\n\n this.avail_out = 0;\n /* total number of bytes output so far */\n\n this.total_out = 0;\n /* last error message, NULL if no error */\n\n this.msg = ''\n /*Z_NULL*/\n ;\n /* not visible by applications */\n\n this.state = null;\n /* best guess about the data type: binary or text */\n\n this.data_type = 2\n /*Z_UNKNOWN*/\n ;\n /* adler32 value of the uncompressed data */\n\n this.adler = 0;\n}\n\nmodule.exports = ZStream;","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar trees = require('./trees');\n\nvar adler32 = require('./adler32');\n\nvar crc32 = require('./crc32');\n\nvar msg = require('./messages');\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n\n\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1; //var Z_SYNC_FLUSH = 2;\n\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5; //var Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1; //var Z_NEED_DICT = 2;\n//var Z_ERRNO = -1;\n\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3; //var Z_MEM_ERROR = -4;\n\nvar Z_BUF_ERROR = -5; //var Z_VERSION_ERROR = -6;\n\n/* compression levels */\n//var Z_NO_COMPRESSION = 0;\n//var Z_BEST_SPEED = 1;\n//var Z_BEST_COMPRESSION = 9;\n\nvar Z_DEFAULT_COMPRESSION = -1;\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n/* Possible values of the data_type field (though see inflate()) */\n//var Z_BINARY = 0;\n//var Z_TEXT = 1;\n//var Z_ASCII = 1; // = Z_TEXT\n\nvar Z_UNKNOWN = 2;\n/* The deflate compression method */\n\nvar Z_DEFLATED = 8;\n/*============================================================================*/\n\nvar MAX_MEM_LEVEL = 9;\n/* Maximum value for memLevel in deflateInit2 */\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_MEM_LEVEL = 8;\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\nvar MIN_LOOKAHEAD = MAX_MATCH + MIN_MATCH + 1;\nvar PRESET_DICT = 0x20;\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\nvar BS_NEED_MORE = 1;\n/* block not completed, need more input or more output */\n\nvar BS_BLOCK_DONE = 2;\n/* block flush performed */\n\nvar BS_FINISH_STARTED = 3;\n/* finish started, need only more output at next deflate */\n\nvar BS_FINISH_DONE = 4;\n/* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return (f << 1) - (f > 4 ? 9 : 0);\n}\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n}\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\n\n\nfunction flush_pending(strm) {\n var s = strm.state; //_tr_flush_bits(s);\n\n var len = s.pending;\n\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n\n if (len === 0) {\n return;\n }\n\n utils.arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\nfunction flush_block_only(s, last) {\n trees._tr_flush_block(s, s.block_start >= 0 ? s.block_start : -1, s.strstart - s.block_start, last);\n\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\n\n\nfunction putShortMSB(s, b) {\n // put_byte(s, (Byte)(b >> 8));\n // put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = b >>> 8 & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\n\n\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) {\n len = size;\n }\n\n if (len === 0) {\n return 0;\n }\n\n strm.avail_in -= len; // zmemcpy(buf, strm->next_in, len);\n\n utils.arraySet(buf, strm.input, strm.next_in, len, start);\n\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n } else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n return len;\n}\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\n\n\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length;\n /* max hash chain length */\n\n var scan = s.strstart;\n /* current string */\n\n var match;\n /* matched string */\n\n var len;\n /* length of current match */\n\n var best_len = s.prev_length;\n /* best match length so far */\n\n var nice_match = s.nice_match;\n /* stop if match long enough */\n\n var limit = s.strstart > s.w_size - MIN_LOOKAHEAD ? s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0\n /*NIL*/\n ;\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n\n\n if (nice_match > s.lookahead) {\n nice_match = s.lookahead;\n } // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end || _win[match + best_len - 1] !== scan_end1 || _win[match] !== _win[scan] || _win[++match] !== _win[scan + 1]) {\n continue;\n }\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n\n\n scan += 2;\n match++; // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && _win[++scan] === _win[++match] && scan < strend); // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n\n len = MAX_MATCH - (strend - scan);\n scan = strend - MAX_MATCH;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n\n if (len >= nice_match) {\n break;\n }\n\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n\n return s.lookahead;\n}\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\n\n\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str; //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart; // JS ints have 32 bit, block below not needed\n\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n utils.arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n\n s.block_start -= _w_size;\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n\n do {\n m = s.head[--p];\n s.head[p] = m >= _w_size ? m - _w_size : 0;\n } while (--n);\n\n n = _w_size;\n p = n;\n\n do {\n m = s.prev[--p];\n s.prev[p] = m >= _w_size ? m - _w_size : 0;\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n\n if (s.strm.avail_in === 0) {\n break;\n }\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n\n\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n /* Initialize the hash value now that we have some input: */\n\n if (s.lookahead + s.insert >= MIN_MATCH) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call update_hash() MIN_MATCH-3 more times\n //#endif\n\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n\n if (s.lookahead + s.insert < MIN_MATCH) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n // if (s.high_water < s.window_size) {\n // var curr = s.strstart + s.lookahead;\n // var init = 0;\n //\n // if (s.high_water < curr) {\n // /* Previous high water mark below current data -- zero WIN_INIT\n // * bytes or up to end of window, whichever is less.\n // */\n // init = s.window_size - curr;\n // if (init > WIN_INIT)\n // init = WIN_INIT;\n // zmemzero(s->window + curr, (unsigned)init);\n // s->high_water = curr + init;\n // }\n // else if (s->high_water < (ulg)curr + WIN_INIT) {\n // /* High water mark at or above current data, but below current data\n // * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n // * to end of window, whichever is less.\n // */\n // init = (ulg)curr + WIN_INIT - s->high_water;\n // if (init > s->window_size - s->high_water)\n // init = s->window_size - s->high_water;\n // zmemzero(s->window + s->high_water, (unsigned)init);\n // s->high_water += init;\n // }\n // }\n //\n // Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n // \"not enough room for search\");\n\n}\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\n\n\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n /* Copy as much as possible from input to output: */\n\n\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n // if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n // s.block_start >= s.w_size)) {\n // throw new Error(\"slide too late\");\n // }\n fill_window(s);\n\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n } //Assert(s->block_start >= 0L, \"block gone\");\n // if (s.block_start < 0) throw new Error(\"block gone\");\n\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n /* Emit a stored block if pending_buf will be full: */\n\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n\n\n if (s.strstart - s.block_start >= s.w_size - MIN_LOOKAHEAD) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_NEED_MORE;\n}\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\n\n\nfunction deflate_fast(s, flush) {\n var hash_head;\n /* head of the hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n /* flush the current block */\n }\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n\n\n if (hash_head !== 0\n /*NIL*/\n && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n\n if (s.match_length >= MIN_MATCH) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n\n if (s.match_length <= s.max_lazy_match\n /*max_insert_length*/\n && s.lookahead >= MIN_MATCH) {\n s.match_length--;\n /* string at strstart already in table */\n\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n\n s.strstart++;\n } else {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + 1]) & s.hash_mask; //#if MIN_MATCH != 3\n // Call UPDATE_HASH() MIN_MATCH-3 more times\n //#endif\n\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\n\n\nfunction deflate_slow(s, flush) {\n var hash_head;\n /* head of hash chain */\n\n var bflush;\n /* set if current block must be flushed */\n\n var max_insert;\n /* Process the input block. */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n\n\n hash_head = 0\n /*NIL*/\n ;\n\n if (s.lookahead >= MIN_MATCH) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n /* Find the longest match, discarding those <= prev_length.\n */\n\n\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH - 1;\n\n if (hash_head !== 0\n /*NIL*/\n && s.prev_length < s.max_lazy_match && s.strstart - hash_head <= s.w_size - MIN_LOOKAHEAD\n /*MAX_DIST(s)*/\n ) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 && (s.strategy === Z_FILTERED || s.match_length === MIN_MATCH && s.strstart - s.match_start > 4096\n /*TOO_FAR*/\n )) {\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n\n\n if (s.prev_length >= MIN_MATCH && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH;\n /* Do not insert strings in hash table beyond this. */\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n\n bflush = trees._tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[s.strstart + MIN_MATCH - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n\n s.match_available = 0;\n s.match_length = MIN_MATCH - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n\n s.strstart++;\n s.lookahead--;\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n } //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n\n\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart - 1]);\n s.match_available = 0;\n }\n\n s.insert = s.strstart < MIN_MATCH - 1 ? s.strstart : MIN_MATCH - 1;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\n\n\nfunction deflate_rle(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n var prev;\n /* byte at distance one to match */\n\n var scan, strend;\n /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH) {\n fill_window(s);\n\n if (s.lookahead <= MAX_MATCH && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n\n }\n /* See how many times the previous byte repeats */\n\n\n s.match_length = 0;\n\n if (s.lookahead >= MIN_MATCH && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH;\n\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan] && scan < strend);\n\n s.match_length = MAX_MATCH - (strend - scan);\n\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n } //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n\n }\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n\n\n if (s.match_length >= MIN_MATCH) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = trees._tr_tally(s, 1, s.match_length - MIN_MATCH);\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n }\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\n\n\nfunction deflate_huff(s, flush) {\n var bflush;\n /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n break;\n /* flush the current block */\n }\n }\n /* Output a literal byte */\n\n\n s.match_length = 0; //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n\n bflush = trees._tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n\n\n return BS_FINISH_DONE;\n }\n\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n }\n\n return BS_BLOCK_DONE;\n}\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\n\n\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nvar configuration_table;\nconfiguration_table = [\n/* good lazy nice chain */\nnew Config(0, 0, 0, 0, deflate_stored),\n/* 0 store only */\nnew Config(4, 4, 8, 4, deflate_fast),\n/* 1 max speed, no lazy matches */\nnew Config(4, 5, 16, 8, deflate_fast),\n/* 2 */\nnew Config(4, 6, 32, 32, deflate_fast),\n/* 3 */\nnew Config(4, 4, 16, 16, deflate_slow),\n/* 4 lazy matches */\nnew Config(8, 16, 32, 32, deflate_slow),\n/* 5 */\nnew Config(8, 16, 128, 128, deflate_slow),\n/* 6 */\nnew Config(8, 32, 128, 256, deflate_slow),\n/* 7 */\nnew Config(32, 128, 258, 1024, deflate_slow),\n/* 8 */\nnew Config(32, 258, 258, 4096, deflate_slow)\n/* 9 max compression */\n];\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\n\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n /*** CLEAR_HASH(s); ***/\n\n zero(s.head); // Fill with NIL (= 0);\n\n /* Set the default configuration parameters:\n */\n\n s.max_lazy_match = configuration_table[s.level].max_lazy;\n s.good_match = configuration_table[s.level].good_length;\n s.nice_match = configuration_table[s.level].nice_length;\n s.max_chain_length = configuration_table[s.level].max_chain;\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\nfunction DeflateState() {\n this.strm = null;\n /* pointer back to this zlib stream */\n\n this.status = 0;\n /* as the name implies */\n\n this.pending_buf = null;\n /* output still pending */\n\n this.pending_buf_size = 0;\n /* size of pending_buf */\n\n this.pending_out = 0;\n /* next pending byte to output to the stream */\n\n this.pending = 0;\n /* nb of bytes in the pending buffer */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.gzhead = null;\n /* gzip header information to write */\n\n this.gzindex = 0;\n /* where in extra, name, or comment */\n\n this.method = Z_DEFLATED;\n /* can only be DEFLATED */\n\n this.last_flush = -1;\n /* value of flush param for previous deflate call */\n\n this.w_size = 0;\n /* LZ77 window size (32K by default) */\n\n this.w_bits = 0;\n /* log2(w_size) (8..16) */\n\n this.w_mask = 0;\n /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null;\n /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0;\n /* hash index of string to be inserted */\n\n this.hash_size = 0;\n /* number of elements in hash table */\n\n this.hash_bits = 0;\n /* log2(hash_size) */\n\n this.hash_mask = 0;\n /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0;\n /* length of best match */\n\n this.prev_match = 0;\n /* previous match */\n\n this.match_available = 0;\n /* set if previous match exists */\n\n this.strstart = 0;\n /* start of string to insert */\n\n this.match_start = 0;\n /* start of matching string */\n\n this.lookahead = 0;\n /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0;\n /* compression level (1..9) */\n\n this.strategy = 0;\n /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0;\n /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n\n this.dyn_ltree = new utils.Buf16(HEAP_SIZE * 2);\n this.dyn_dtree = new utils.Buf16((2 * D_CODES + 1) * 2);\n this.bl_tree = new utils.Buf16((2 * BL_CODES + 1) * 2);\n zero(this.dyn_ltree);\n zero(this.dyn_dtree);\n zero(this.bl_tree);\n this.l_desc = null;\n /* desc. for literal tree */\n\n this.d_desc = null;\n /* desc. for distance tree */\n\n this.bl_desc = null;\n /* desc. for bit length tree */\n //ush bl_count[MAX_BITS+1];\n\n this.bl_count = new utils.Buf16(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n\n this.heap = new utils.Buf16(2 * L_CODES + 1);\n /* heap used to build the Huffman trees */\n\n zero(this.heap);\n this.heap_len = 0;\n /* number of elements in the heap */\n\n this.heap_max = 0;\n /* element of largest frequency */\n\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = new utils.Buf16(2 * L_CODES + 1); //uch depth[2*L_CODES+1];\n\n zero(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0;\n /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0;\n /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0;\n /* bit length of current block with optimal trees */\n\n this.static_len = 0;\n /* bit length of current block with static trees */\n\n this.matches = 0;\n /* number of string matches in current block */\n\n this.insert = 0;\n /* bytes at end of window left to insert */\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n\n s.status = s.wrap ? INIT_STATE : BUSY_STATE;\n strm.adler = s.wrap === 2 ? 0 // crc32(0, Z_NULL, 0)\n : 1; // adler32(0, Z_NULL, 0)\n\n s.last_flush = Z_NO_FLUSH;\n\n trees._tr_init(s);\n\n return Z_OK;\n}\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n\n return ret;\n}\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n if (strm.state.wrap !== 2) {\n return Z_STREAM_ERROR;\n }\n\n strm.state.gzhead = head;\n return Z_OK;\n}\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) {\n // === Z_NULL\n return Z_STREAM_ERROR;\n }\n\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) {\n /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n } else if (windowBits > 15) {\n wrap = 2;\n /* write gzip wrapper instead */\n\n windowBits -= 16;\n }\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED || windowBits < 8 || windowBits > 15 || level < 0 || level > 9 || strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n\n var s = new DeflateState();\n strm.state = s;\n s.strm = strm;\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH - 1) / MIN_MATCH);\n s.window = new utils.Buf8(s.w_size * 2);\n s.head = new utils.Buf16(s.hash_size);\n s.prev = new utils.Buf16(s.w_size); // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << memLevel + 6;\n /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4; //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n\n s.pending_buf = new utils.Buf8(s.pending_buf_size); // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n\n s.d_buf = 1 * s.lit_bufsize; //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n\n s.l_buf = (1 + 2) * s.lit_bufsize;\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n return deflateReset(strm);\n}\n\nfunction deflateInit(strm, level) {\n return deflateInit2(strm, level, Z_DEFLATED, MAX_WBITS, DEF_MEM_LEVEL, Z_DEFAULT_STRATEGY);\n}\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state || flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output || !strm.input && strm.avail_in !== 0 || s.status === FINISH_STATE && flush !== Z_FINISH) {\n return err(strm, strm.avail_out === 0 ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm;\n /* just in case */\n\n old_flush = s.last_flush;\n s.last_flush = flush;\n /* Write the header */\n\n if (s.status === INIT_STATE) {\n if (s.wrap === 2) {\n // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n\n if (!s.gzhead) {\n // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n } else {\n put_byte(s, (s.gzhead.text ? 1 : 0) + (s.gzhead.hcrc ? 2 : 0) + (!s.gzhead.extra ? 0 : 4) + (!s.gzhead.name ? 0 : 8) + (!s.gzhead.comment ? 0 : 16));\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, s.gzhead.time >> 8 & 0xff);\n put_byte(s, s.gzhead.time >> 16 & 0xff);\n put_byte(s, s.gzhead.time >> 24 & 0xff);\n put_byte(s, s.level === 9 ? 2 : s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ? 4 : 0);\n put_byte(s, s.gzhead.os & 0xff);\n\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, s.gzhead.extra.length >> 8 & 0xff);\n }\n\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n } else // DEFLATE header\n {\n var header = Z_DEFLATED + (s.w_bits - 8 << 4) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n\n header |= level_flags << 6;\n\n if (s.strstart !== 0) {\n header |= PRESET_DICT;\n }\n\n header += 31 - header % 31;\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n /* Save the adler32 of the preset dictionary: */\n\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n } //#ifdef GZIP\n\n\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n } else {\n s.status = NAME_STATE;\n }\n }\n\n if (s.status === NAME_STATE) {\n if (s.gzhead.name\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n } else {\n s.status = COMMENT_STATE;\n }\n }\n\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment\n /* != Z_NULL*/\n ) {\n beg = s.pending;\n /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n flush_pending(strm);\n beg = s.pending;\n\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n } // JS specific: little magic to add zero terminator to end of string\n\n\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n } else {\n s.status = HCRC_STATE;\n }\n }\n\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n\n s.status = BUSY_STATE;\n }\n } else {\n s.status = BUSY_STATE;\n }\n } //#endif\n\n /* Flush as much pending output as possible */\n\n\n if (s.pending !== 0) {\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) && flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n /* User must not provide more input after the first FINISH: */\n\n\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n /* Start a new block or continue the current one.\n */\n\n\n if (strm.avail_in !== 0 || s.lookahead !== 0 || flush !== Z_NO_FLUSH && s.status !== FINISH_STATE) {\n var bstate = s.strategy === Z_HUFFMAN_ONLY ? deflate_huff(s, flush) : s.strategy === Z_RLE ? deflate_rle(s, flush) : configuration_table[s.level].func(s, flush);\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n trees._tr_align(s);\n } else if (flush !== Z_BLOCK) {\n /* FULL_FLUSH or SYNC_FLUSH */\n trees._tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n\n\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/\n\n /* forget history */\n zero(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n\n flush_pending(strm);\n\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR at next call, see above */\n\n return Z_OK;\n }\n }\n } //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n\n if (flush !== Z_FINISH) {\n return Z_OK;\n }\n\n if (s.wrap <= 0) {\n return Z_STREAM_END;\n }\n /* Write the trailer */\n\n\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, strm.adler >> 8 & 0xff);\n put_byte(s, strm.adler >> 16 & 0xff);\n put_byte(s, strm.adler >> 24 & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, strm.total_in >> 8 & 0xff);\n put_byte(s, strm.total_in >> 16 & 0xff);\n put_byte(s, strm.total_in >> 24 & 0xff);\n } else {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n\n if (s.wrap > 0) {\n s.wrap = -s.wrap;\n }\n /* write the trailer only once! */\n\n\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n\n if (status !== INIT_STATE && status !== EXTRA_STATE && status !== NAME_STATE && status !== COMMENT_STATE && status !== HCRC_STATE && status !== BUSY_STATE && status !== FINISH_STATE) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\n\n\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm\n /*== Z_NULL*/\n || !strm.state\n /*== Z_NULL*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || wrap === 1 && s.status !== INIT_STATE || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n\n\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0;\n /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n\n if (dictLength >= s.w_size) {\n if (wrap === 0) {\n /* already empty otherwise */\n\n /*** CLEAR_HASH(s); ***/\n zero(s.head); // Fill with NIL (= 0);\n\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n\n\n tmpDict = new utils.Buf8(s.w_size);\n utils.arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n\n\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n\n while (s.lookahead >= MIN_MATCH) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH - 1);\n\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = (s.ins_h << s.hash_shift ^ s.window[str + MIN_MATCH - 1]) & s.hash_mask;\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n\n s.strstart = str;\n s.lookahead = MIN_MATCH - 1;\n fill_window(s);\n }\n\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\nexports.deflateInit = deflateInit;\nexports.deflateInit2 = deflateInit2;\nexports.deflateReset = deflateReset;\nexports.deflateResetKeep = deflateResetKeep;\nexports.deflateSetHeader = deflateSetHeader;\nexports.deflate = deflate;\nexports.deflateEnd = deflateEnd;\nexports.deflateSetDictionary = deflateSetDictionary;\nexports.deflateInfo = 'pako deflate (from Nodeca project)';\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* eslint-disable space-unary-ops */\n\nvar utils = require('../utils/common');\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n//var Z_FILTERED = 1;\n//var Z_HUFFMAN_ONLY = 2;\n//var Z_RLE = 3;\n\n\nvar Z_FIXED = 4; //var Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\n\nvar Z_BINARY = 0;\nvar Z_TEXT = 1; //var Z_ASCII = 1; // = Z_TEXT\n\nvar Z_UNKNOWN = 2;\n/*============================================================================*/\n\nfunction zero(buf) {\n var len = buf.length;\n\n while (--len >= 0) {\n buf[len] = 0;\n }\n} // From zutil.h\n\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n// From deflate.h\n\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\n\nvar extra_lbits =\n/* extra bits for each length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0];\nvar extra_dbits =\n/* extra bits for each distance code */\n[0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13];\nvar extra_blbits =\n/* extra bits for each bit length code */\n[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 7];\nvar bl_order = [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512;\n/* see definition of array dist_code below */\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\n\nvar static_ltree = new Array((L_CODES + 2) * 2);\nzero(static_ltree);\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree = new Array(D_CODES * 2);\nzero(static_dtree);\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code = new Array(DIST_CODE_LEN);\n\nzero(_dist_code);\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code = new Array(MAX_MATCH - MIN_MATCH + 1);\n\nzero(_length_code);\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length = new Array(LENGTH_CODES);\nzero(base_length);\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist = new Array(D_CODES);\nzero(base_dist);\n/* First normalized distance for each code (0 = distance of 1) */\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n this.static_tree = static_tree;\n /* static tree or NULL */\n\n this.extra_bits = extra_bits;\n /* extra bits for each code or NULL */\n\n this.extra_base = extra_base;\n /* base index for extra_bits */\n\n this.elems = elems;\n /* max number of elements in the tree */\n\n this.max_length = max_length;\n /* max bit length for the codes */\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n\n this.has_stree = static_tree && static_tree.length;\n}\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree;\n /* the dynamic tree */\n\n this.max_code = 0;\n /* largest code with non zero frequency */\n\n this.stat_desc = stat_desc;\n /* the corresponding static tree */\n}\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\n\n\nfunction put_short(s, w) {\n // put_byte(s, (uch)((w) & 0xff));\n // put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = w & 0xff;\n s.pending_buf[s.pending++] = w >>> 8 & 0xff;\n}\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\n\n\nfunction send_bits(s, value, length) {\n if (s.bi_valid > Buf_size - length) {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> Buf_size - s.bi_valid;\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= value << s.bi_valid & 0xffff;\n s.bi_valid += length;\n }\n}\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]\n /*.Code*/\n , tree[c * 2 + 1]\n /*.Len*/\n );\n}\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\n\n\nfunction bi_reverse(code, len) {\n var res = 0;\n\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n\n return res >>> 1;\n}\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\n\n\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\n\n\nfunction gen_bitlen(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h;\n /* heap index */\n\n var n, m;\n /* iterate over the tree elements */\n\n var bits;\n /* bit length */\n\n var xbits;\n /* extra bits */\n\n var f;\n /* frequency */\n\n var overflow = 0;\n /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n\n\n tree[s.heap[s.heap_max] * 2 + 1]\n /*.Len*/\n = 0;\n /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]\n /*.Dad*/\n * 2 + 1]\n /*.Len*/\n + 1;\n\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n\n tree[n * 2 + 1]\n /*.Len*/\n = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) {\n continue;\n }\n /* not a leaf node */\n\n\n s.bl_count[bits]++;\n xbits = 0;\n\n if (n >= base) {\n xbits = extra[n - base];\n }\n\n f = tree[n * 2]\n /*.Freq*/\n ;\n s.opt_len += f * (bits + xbits);\n\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]\n /*.Len*/\n + xbits);\n }\n }\n\n if (overflow === 0) {\n return;\n } // Trace((stderr,\"\\nbit length overflow\\n\"));\n\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n\n\n do {\n bits = max_length - 1;\n\n while (s.bl_count[bits] === 0) {\n bits--;\n }\n\n s.bl_count[bits]--;\n /* move one leaf down the tree */\n\n s.bl_count[bits + 1] += 2;\n /* move one overflow item as its brother */\n\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n\n overflow -= 2;\n } while (overflow > 0);\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n\n\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n\n while (n !== 0) {\n m = s.heap[--h];\n\n if (m > max_code) {\n continue;\n }\n\n if (tree[m * 2 + 1]\n /*.Len*/\n !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]\n /*.Len*/\n ) * tree[m * 2]\n /*.Freq*/\n ;\n tree[m * 2 + 1]\n /*.Len*/\n = bits;\n }\n\n n--;\n }\n }\n}\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\n\n\nfunction gen_codes(tree, max_code, bl_count) // ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1);\n /* next code value for each bit length */\n\n var code = 0;\n /* running code value */\n\n var bits;\n /* bit index */\n\n var n;\n /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = code + bl_count[bits - 1] << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1<<MAX_BITS)-1,\n // \"inconsistent bit counts\");\n //Tracev((stderr,\"\\ngen_codes: max_code %d \", max_code));\n\n\n for (n = 0; n <= max_code; n++) {\n var len = tree[n * 2 + 1]\n /*.Len*/\n ;\n\n if (len === 0) {\n continue;\n }\n /* Now reverse the bits */\n\n\n tree[n * 2]\n /*.Code*/\n = bi_reverse(next_code[len]++, len); //Tracecv(tree != static_ltree, (stderr,\"\\nn %3d %c l %2d c %4x (%x) \",\n // n, (isgraph(n) ? n : ' '), len, tree[n].Code, next_code[len]-1));\n }\n}\n/* ===========================================================================\n * Initialize the various 'constant' tables.\n */\n\n\nfunction tr_static_init() {\n var n;\n /* iterates over tree elements */\n\n var bits;\n /* bit counter */\n\n var length;\n /* length value */\n\n var code;\n /* code value */\n\n var dist;\n /* distance index */\n\n var bl_count = new Array(MAX_BITS + 1);\n /* number of codes at each bit length for an optimal tree */\n // do check in _tr_init()\n //if (static_init_done) return;\n\n /* For some embedded targets, global variables are not initialized: */\n\n /*#ifdef NO_INIT_GLOBAL_POINTERS\n static_l_desc.static_tree = static_ltree;\n static_l_desc.extra_bits = extra_lbits;\n static_d_desc.static_tree = static_dtree;\n static_d_desc.extra_bits = extra_dbits;\n static_bl_desc.extra_bits = extra_blbits;\n #endif*/\n\n /* Initialize the mapping length (0..255) -> length code (0..28) */\n\n length = 0;\n\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n\n for (n = 0; n < 1 << extra_lbits[code]; n++) {\n _length_code[length++] = code;\n }\n } //Assert (length == 256, \"tr_static_init: length != 256\");\n\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n\n\n _length_code[length - 1] = code;\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n\n dist = 0;\n\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n\n for (n = 0; n < 1 << extra_dbits[code]; n++) {\n _dist_code[dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: dist != 256\");\n\n\n dist >>= 7;\n /* from now on, all distances are divided by 128 */\n\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n\n for (n = 0; n < 1 << extra_dbits[code] - 7; n++) {\n _dist_code[256 + dist++] = code;\n }\n } //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n\n while (n <= 143) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n\n while (n <= 255) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 9;\n n++;\n bl_count[9]++;\n }\n\n while (n <= 279) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 7;\n n++;\n bl_count[7]++;\n }\n\n while (n <= 287) {\n static_ltree[n * 2 + 1]\n /*.Len*/\n = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n\n\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n /* The static distance tree is trivial: */\n\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]\n /*.Len*/\n = 5;\n static_dtree[n * 2]\n /*.Code*/\n = bi_reverse(n, 5);\n } // Now data ready and we can init static trees\n\n\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS); //static_init_done = true;\n}\n/* ===========================================================================\n * Initialize a new block.\n */\n\n\nfunction init_block(s) {\n var n;\n /* iterates over tree elements */\n\n /* Initialize the trees. */\n\n for (n = 0; n < L_CODES; n++) {\n s.dyn_ltree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < D_CODES; n++) {\n s.dyn_dtree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n for (n = 0; n < BL_CODES; n++) {\n s.bl_tree[n * 2]\n /*.Freq*/\n = 0;\n }\n\n s.dyn_ltree[END_BLOCK * 2]\n /*.Freq*/\n = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\n\n\nfunction bi_windup(s) {\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\n\n\nfunction copy_block(s, buf, len, header) //DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s);\n /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n } // while (len--) {\n // put_byte(s, *buf++);\n // }\n\n\n utils.arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\n\n\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n\n var _m2 = m * 2;\n\n return tree[_n2]\n /*.Freq*/\n < tree[_m2]\n /*.Freq*/\n || tree[_n2]\n /*.Freq*/\n === tree[_m2]\n /*.Freq*/\n && depth[n] <= depth[m];\n}\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\n\n\nfunction pqdownheap(s, tree, k) // deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1;\n /* left son of k */\n\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len && smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n\n\n if (smaller(tree, v, s.heap[j], s.depth)) {\n break;\n }\n /* Exchange v with the smallest son */\n\n\n s.heap[k] = s.heap[j];\n k = j;\n /* And continue down the tree, setting j to the left son of k */\n\n j <<= 1;\n }\n\n s.heap[k] = v;\n} // inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\n\n\nfunction compress_block(s, ltree, dtree) // deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist;\n /* distance of matched string */\n\n var lc;\n /* match length or unmatched char (if dist == 0) */\n\n var lx = 0;\n /* running index in l_buf */\n\n var code;\n /* the code to send */\n\n var extra;\n /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = s.pending_buf[s.d_buf + lx * 2] << 8 | s.pending_buf[s.d_buf + lx * 2 + 1];\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree);\n /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree);\n /* send the length code */\n\n extra = extra_lbits[code];\n\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra);\n /* send the extra length bits */\n }\n\n dist--;\n /* dist is now the match distance - 1 */\n\n code = d_code(dist); //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree);\n /* send the distance code */\n\n extra = extra_dbits[code];\n\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra);\n /* send the extra distance bits */\n }\n }\n /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\n\n\nfunction build_tree(s, desc) // deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m;\n /* iterate over heap elements */\n\n var max_code = -1;\n /* largest code with non zero frequency */\n\n var node;\n /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]\n /*.Freq*/\n !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n } else {\n tree[n * 2 + 1]\n /*.Len*/\n = 0;\n }\n }\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n\n\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = max_code < 2 ? ++max_code : 0;\n tree[node * 2]\n /*.Freq*/\n = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]\n /*.Len*/\n ;\n }\n /* node is 0 or 1 so it does not have extra bits */\n\n }\n\n desc.max_code = max_code;\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n\n for (n = s.heap_len >> 1\n /*int /2*/\n ; n >= 1; n--) {\n pqdownheap(s, tree, n);\n }\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n\n\n node = elems;\n /* next internal node of the tree */\n\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n\n /*** pqremove ***/\n n = s.heap[1\n /*SMALLEST*/\n ];\n s.heap[1\n /*SMALLEST*/\n ] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n /***/\n\n m = s.heap[1\n /*SMALLEST*/\n ];\n /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n;\n /* keep the nodes sorted by frequency */\n\n s.heap[--s.heap_max] = m;\n /* Create a new node father of n and m */\n\n tree[node * 2]\n /*.Freq*/\n = tree[n * 2]\n /*.Freq*/\n + tree[m * 2]\n /*.Freq*/\n ;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]\n /*.Dad*/\n = tree[m * 2 + 1]\n /*.Dad*/\n = node;\n /* and insert the new node in the heap */\n\n s.heap[1\n /*SMALLEST*/\n ] = node++;\n pqdownheap(s, tree, 1\n /*SMALLEST*/\n );\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1\n /*SMALLEST*/\n ];\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n\n gen_bitlen(s, desc);\n /* The field len is now set, we can generate the bit codes */\n\n gen_codes(tree, max_code, s.bl_count);\n}\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\n\n\nfunction scan_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n tree[(max_code + 1) * 2 + 1]\n /*.Len*/\n = 0xffff;\n /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]\n /*.Freq*/\n += count;\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n s.bl_tree[curlen * 2] /*.Freq*/++;\n }\n\n s.bl_tree[REP_3_6 * 2] /*.Freq*/++;\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2] /*.Freq*/++;\n } else {\n s.bl_tree[REPZ_11_138 * 2] /*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\n\n\nfunction send_tree(s, tree, max_code) // deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n;\n /* iterates over all tree elements */\n\n var prevlen = -1;\n /* last emitted length */\n\n var curlen;\n /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]\n /*.Len*/\n ;\n /* length of next code */\n\n var count = 0;\n /* repeat count of the current code */\n\n var max_count = 7;\n /* max repeat count */\n\n var min_count = 4;\n /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */\n\n /* guard already set */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]\n /*.Len*/\n ;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n } else if (count < min_count) {\n do {\n send_code(s, curlen, s.bl_tree);\n } while (--count !== 0);\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n } //Assert(count >= 3 && count <= 6, \" 3_6?\");\n\n\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\n\n\nfunction build_bl_tree(s) {\n var max_blindex;\n /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n /* Build the bit length tree: */\n\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]\n /*.Len*/\n !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n\n\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4; //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\n\n\nfunction send_all_trees(s, lcodes, dcodes, blcodes) // deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank;\n /* index in bl_order */\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n\n send_bits(s, lcodes - 257, 5);\n /* not +255 as stated in appnote.txt */\n\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4);\n /* not -3 as stated in appnote.txt */\n\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]\n /*.Len*/\n , 3);\n } //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n\n send_tree(s, s.dyn_ltree, lcodes - 1);\n /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1);\n /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\n\n\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n /* Check for non-textual (\"black-listed\") bytes. */\n\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if (black_mask & 1 && s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_BINARY;\n }\n }\n /* Check for textual (\"white-listed\") bytes. */\n\n\n if (s.dyn_ltree[9 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[10 * 2]\n /*.Freq*/\n !== 0 || s.dyn_ltree[13 * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]\n /*.Freq*/\n !== 0) {\n return Z_TEXT;\n }\n }\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n\n\n return Z_BINARY;\n}\n\nvar static_init_done = false;\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\n\nfunction _tr_init(s) {\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n s.bi_buf = 0;\n s.bi_valid = 0;\n /* Initialize the first block of the first file: */\n\n init_block(s);\n}\n/* ===========================================================================\n * Send a stored block\n */\n\n\nfunction _tr_stored_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3);\n /* send block type */\n\n copy_block(s, buf, stored_len, true);\n /* with header */\n}\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\n\n\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\n\n\nfunction _tr_flush_block(s, buf, stored_len, last) //DeflateState *s;\n//charf *buf; /* input block, or NULL if too old */\n//ulg stored_len; /* length of input block */\n//int last; /* one if this is the last block for a file */\n{\n var opt_lenb, static_lenb;\n /* opt_len and static_len in bytes */\n\n var max_blindex = 0;\n /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n\n if (s.level > 0) {\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n /* Construct the literal and distance trees */\n\n\n build_tree(s, s.l_desc); // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc); // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n\n max_blindex = build_bl_tree(s);\n /* Determine the best encoding. Compute the block lengths in bytes. */\n\n opt_lenb = s.opt_len + 3 + 7 >>> 3;\n static_lenb = s.static_len + 3 + 7 >>> 3; // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) {\n opt_lenb = static_lenb;\n }\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5;\n /* force a stored block */\n }\n\n if (stored_len + 4 <= opt_lenb && buf !== -1) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n } // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n\n\n init_block(s);\n\n if (last) {\n bi_windup(s);\n } // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n\n}\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\n\n\nfunction _tr_tally(s, dist, lc) // deflate_state *s;\n// unsigned dist; /* distance of matched string */\n// unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n{\n //var out_length, in_length, dcode;\n s.pending_buf[s.d_buf + s.last_lit * 2] = dist >>> 8 & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2] /*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n\n dist--;\n /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2] /*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2] /*.Freq*/++;\n } // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n //#ifdef TRUNCATE_BLOCK\n // /* Try to guess if it is profitable to stop the current block here */\n // if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n // /* Compute an upper bound for the compressed length */\n // out_length = s.last_lit*8;\n // in_length = s.strstart - s.block_start;\n //\n // for (dcode = 0; dcode < D_CODES; dcode++) {\n // out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n // }\n // out_length >>>= 3;\n // //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n // // s->last_lit, in_length, out_length,\n // // 100L - out_length*100L/in_length));\n // if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n // return true;\n // }\n // }\n //#endif\n\n\n return s.last_lit === s.lit_bufsize - 1;\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\nexports._tr_init = _tr_init;\nexports._tr_stored_block = _tr_stored_block;\nexports._tr_flush_block = _tr_flush_block;\nexports._tr_tally = _tr_tally;\nexports._tr_align = _tr_align;","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n 2: 'need dictionary',\n\n /* Z_NEED_DICT 2 */\n 1: 'stream end',\n\n /* Z_STREAM_END 1 */\n 0: '',\n\n /* Z_OK 0 */\n '-1': 'file error',\n\n /* Z_ERRNO (-1) */\n '-2': 'stream error',\n\n /* Z_STREAM_ERROR (-2) */\n '-3': 'data error',\n\n /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory',\n\n /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error',\n\n /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version'\n /* Z_VERSION_ERROR (-6) */\n\n};","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar adler32 = require('./adler32');\n\nvar crc32 = require('./crc32');\n\nvar inflate_fast = require('./inffast');\n\nvar inflate_table = require('./inftrees');\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n/* Public constants ==========================================================*/\n\n/* ===========================================================================*/\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\n\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2; //var Z_ERRNO = -1;\n\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5; //var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\n\nvar Z_DEFLATED = 8;\n/* STATES ====================================================================*/\n\n/* ===========================================================================*/\n\nvar HEAD = 1;\n/* i: waiting for magic header */\n\nvar FLAGS = 2;\n/* i: waiting for method and flags (gzip) */\n\nvar TIME = 3;\n/* i: waiting for modification time (gzip) */\n\nvar OS = 4;\n/* i: waiting for extra flags and operating system (gzip) */\n\nvar EXLEN = 5;\n/* i: waiting for extra length (gzip) */\n\nvar EXTRA = 6;\n/* i: waiting for extra bytes (gzip) */\n\nvar NAME = 7;\n/* i: waiting for end of file name (gzip) */\n\nvar COMMENT = 8;\n/* i: waiting for end of comment (gzip) */\n\nvar HCRC = 9;\n/* i: waiting for header crc (gzip) */\n\nvar DICTID = 10;\n/* i: waiting for dictionary check value */\n\nvar DICT = 11;\n/* waiting for inflateSetDictionary() call */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\nvar TYPEDO = 13;\n/* i: same, but skip check to exit inflate on new block */\n\nvar STORED = 14;\n/* i: waiting for stored size (length and complement) */\n\nvar COPY_ = 15;\n/* i/o: same as COPY below, but only first time in */\n\nvar COPY = 16;\n/* i/o: waiting for input or output to copy stored block */\n\nvar TABLE = 17;\n/* i: waiting for dynamic block table lengths */\n\nvar LENLENS = 18;\n/* i: waiting for code length code lengths */\n\nvar CODELENS = 19;\n/* i: waiting for length/lit and distance code lengths */\n\nvar LEN_ = 20;\n/* i: same as LEN below, but only first time in */\n\nvar LEN = 21;\n/* i: waiting for length/lit/eob code */\n\nvar LENEXT = 22;\n/* i: waiting for length extra bits */\n\nvar DIST = 23;\n/* i: waiting for distance code */\n\nvar DISTEXT = 24;\n/* i: waiting for distance extra bits */\n\nvar MATCH = 25;\n/* o: waiting for output space to copy string */\n\nvar LIT = 26;\n/* o: waiting for output space to write literal */\n\nvar CHECK = 27;\n/* i: waiting for 32-bit check value */\n\nvar LENGTH = 28;\n/* i: waiting for 32-bit length (gzip) */\n\nvar DONE = 29;\n/* finished check, done -- remain here until reset */\n\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar MEM = 31;\n/* got an inflate() memory error -- remain here until reset */\n\nvar SYNC = 32;\n/* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar MAX_WBITS = 15;\n/* 32K LZ77 window */\n\nvar DEF_WBITS = MAX_WBITS;\n\nfunction zswap32(q) {\n return (q >>> 24 & 0xff) + (q >>> 8 & 0xff00) + ((q & 0xff00) << 8) + ((q & 0xff) << 24);\n}\n\nfunction InflateState() {\n this.mode = 0;\n /* current inflate mode */\n\n this.last = false;\n /* true if processing last block */\n\n this.wrap = 0;\n /* bit 0 true for zlib, bit 1 true for gzip */\n\n this.havedict = false;\n /* true if dictionary provided */\n\n this.flags = 0;\n /* gzip header method and flags (0 if zlib) */\n\n this.dmax = 0;\n /* zlib header max distance (INFLATE_STRICT) */\n\n this.check = 0;\n /* protected copy of check value */\n\n this.total = 0;\n /* protected copy of output count */\n // TODO: may be {}\n\n this.head = null;\n /* where to save gzip header information */\n\n /* sliding window */\n\n this.wbits = 0;\n /* log base 2 of requested window size */\n\n this.wsize = 0;\n /* window size or zero if not using window */\n\n this.whave = 0;\n /* valid bytes in the window */\n\n this.wnext = 0;\n /* window write index */\n\n this.window = null;\n /* allocated sliding window, if needed */\n\n /* bit accumulator */\n\n this.hold = 0;\n /* input bit accumulator */\n\n this.bits = 0;\n /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n\n this.length = 0;\n /* literal or length of data to copy */\n\n this.offset = 0;\n /* distance back to copy string from */\n\n /* for table and code decoding */\n\n this.extra = 0;\n /* extra bits needed */\n\n /* fixed and dynamic code tables */\n\n this.lencode = null;\n /* starting table for length/literal codes */\n\n this.distcode = null;\n /* starting table for distance codes */\n\n this.lenbits = 0;\n /* index bits for lencode */\n\n this.distbits = 0;\n /* index bits for distcode */\n\n /* dynamic table building */\n\n this.ncode = 0;\n /* number of code length code lengths */\n\n this.nlen = 0;\n /* number of length code lengths */\n\n this.ndist = 0;\n /* number of distance code lengths */\n\n this.have = 0;\n /* number of code lengths in lens[] */\n\n this.next = null;\n /* next available space in codes[] */\n\n this.lens = new utils.Buf16(320);\n /* temporary storage for code lengths */\n\n this.work = new utils.Buf16(288);\n /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = new utils.Buf32(ENOUGH); /* space for code tables */\n\n this.lendyn = null;\n /* dynamic table for length/literal codes (JS specific) */\n\n this.distdyn = null;\n /* dynamic table for distance codes (JS specific) */\n\n this.sane = 0;\n /* if false, allow invalid distance too far */\n\n this.back = 0;\n /* bits back of last unprocessed length/lit */\n\n this.was = 0;\n /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = '';\n /*Z_NULL*/\n\n if (state.wrap) {\n /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null\n /*Z_NULL*/\n ;\n state.hold = 0;\n state.bits = 0; //state.lencode = state.distcode = state.next = state.codes;\n\n state.lencode = state.lendyn = new utils.Buf32(ENOUGH_LENS);\n state.distcode = state.distdyn = new utils.Buf32(ENOUGH_DISTS);\n state.sane = 1;\n state.back = -1; //Tracev((stderr, \"inflate: reset\\n\"));\n\n return Z_OK;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n /* get the state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n /* extract wrap request from windowBits parameter */\n\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n } else {\n wrap = (windowBits >> 4) + 1;\n\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n /* set number of window bits, free window if different */\n\n\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR;\n }\n\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n /* update state and reset the rest of it */\n\n\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) {\n return Z_STREAM_ERROR;\n } //strm.msg = Z_NULL; /* in case we return an error */\n\n\n state = new InflateState(); //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n\n strm.state = state;\n state.window = null\n /*Z_NULL*/\n ;\n ret = inflateReset2(strm, windowBits);\n\n if (ret !== Z_OK) {\n strm.state = null\n /*Z_NULL*/\n ;\n }\n\n return ret;\n}\n\nfunction inflateInit(strm) {\n return inflateInit2(strm, DEF_WBITS);\n}\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\n\n\nvar virgin = true;\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n lenfix = new utils.Buf32(512);\n distfix = new utils.Buf32(32);\n /* literal/length table */\n\n sym = 0;\n\n while (sym < 144) {\n state.lens[sym++] = 8;\n }\n\n while (sym < 256) {\n state.lens[sym++] = 9;\n }\n\n while (sym < 280) {\n state.lens[sym++] = 7;\n }\n\n while (sym < 288) {\n state.lens[sym++] = 8;\n }\n\n inflate_table(LENS, state.lens, 0, 288, lenfix, 0, state.work, {\n bits: 9\n });\n /* distance table */\n\n sym = 0;\n\n while (sym < 32) {\n state.lens[sym++] = 5;\n }\n\n inflate_table(DISTS, state.lens, 0, 32, distfix, 0, state.work, {\n bits: 5\n });\n /* do this just once */\n\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\n\n\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n /* if it hasn't been done already, allocate space for the window */\n\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n state.window = new utils.Buf8(state.wsize);\n }\n /* copy state->wsize or less output bytes into the circular window */\n\n\n if (copy >= state.wsize) {\n utils.arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n } else {\n dist = state.wsize - state.wnext;\n\n if (dist > copy) {\n dist = copy;\n } //zmemcpy(state->window + state->wnext, end - copy, dist);\n\n\n utils.arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n utils.arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n } else {\n state.wnext += dist;\n\n if (state.wnext === state.wsize) {\n state.wnext = 0;\n }\n\n if (state.whave < state.wsize) {\n state.whave += dist;\n }\n }\n }\n\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n\n var next;\n /* next input INDEX */\n\n var put;\n /* next output INDEX */\n\n var have, left;\n /* available input and output */\n\n var hold;\n /* bit buffer */\n\n var bits;\n /* bits in bit buffer */\n\n var _in, _out;\n /* save starting available input and output */\n\n\n var copy;\n /* number of stored or match bytes to copy */\n\n var from;\n /* where to copy match bytes from */\n\n var from_source;\n var here = 0;\n /* current decoding table entry */\n\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n\n var len;\n /* length to copy for repeats, bits to drop */\n\n var ret;\n /* return code */\n\n var hbuf = new utils.Buf8(4);\n /* buffer for gzip header crc calculation */\n\n var opts;\n var n; // temporary var for NEED_BITS\n\n var order =\n /* permutation of code lengths */\n [16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15];\n\n if (!strm || !strm.state || !strm.output || !strm.input && strm.avail_in !== 0) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.mode === TYPE) {\n state.mode = TYPEDO;\n }\n /* skip check */\n //--- LOAD() ---\n\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n _in = have;\n _out = left;\n ret = Z_OK;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n } //=== NEEDBITS(16);\n\n\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.wrap & 2 && hold === 0x8b1f) {\n /* gzip header */\n state.check = 0\n /*crc32(0L, Z_NULL, 0)*/\n ; //=== CRC2(state.check, hold);\n\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0); //===//\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = FLAGS;\n break;\n }\n\n state.flags = 0;\n /* expect zlib header */\n\n if (state.head) {\n state.head.done = false;\n }\n\n if (!(state.wrap & 1) ||\n /* check if zlib header allowed */\n (((hold & 0xff) <<\n /*BITS(8)*/\n 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD;\n break;\n }\n\n if ((hold & 0x0f) !==\n /*BITS(4)*/\n Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n } //--- DROPBITS(4) ---//\n\n\n hold >>>= 4;\n bits -= 4; //---//\n\n len = (hold & 0x0f) +\n /*BITS(4)*/\n 8;\n\n if (state.wbits === 0) {\n state.wbits = len;\n } else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD;\n break;\n }\n\n state.dmax = 1 << len; //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = hold & 0x200 ? DICTID : TYPE; //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n break;\n\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.flags = hold;\n\n if ((state.flags & 0xff) !== Z_DEFLATED) {\n strm.msg = 'unknown compression method';\n state.mode = BAD;\n break;\n }\n\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD;\n break;\n }\n\n if (state.head) {\n state.head.text = hold >> 8 & 1;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = TIME;\n\n /* falls through */\n\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.time = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n hbuf[2] = hold >>> 16 & 0xff;\n hbuf[3] = hold >>> 24 & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0); //===\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = OS;\n\n /* falls through */\n\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (state.head) {\n state.head.xflags = hold & 0xff;\n state.head.os = hold >> 8;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = EXLEN;\n\n /* falls through */\n\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length = hold;\n\n if (state.head) {\n state.head.extra_len = hold;\n }\n\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = hold >>> 8 & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0); //===//\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n } else if (state.head) {\n state.head.extra = null\n /*Z_NULL*/\n ;\n }\n\n state.mode = EXTRA;\n\n /* falls through */\n\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n\n if (copy > have) {\n copy = have;\n }\n\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n\n utils.arraySet(state.head.extra, input, next, // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len); //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n\n if (state.length) {\n break inf_leave;\n }\n }\n\n state.length = 0;\n state.mode = NAME;\n\n /* falls through */\n\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.name_max*/\n ) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.name = null;\n }\n\n state.length = 0;\n state.mode = COMMENT;\n\n /* falls through */\n\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) {\n break inf_leave;\n }\n\n copy = 0;\n\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n\n if (state.head && len && state.length < 65536\n /*state.head.comm_max*/\n ) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n\n have -= copy;\n next += copy;\n\n if (len) {\n break inf_leave;\n }\n } else if (state.head) {\n state.head.comment = null;\n }\n\n state.mode = HCRC;\n\n /* falls through */\n\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n }\n\n if (state.head) {\n state.head.hcrc = state.flags >> 9 & 1;\n state.head.done = true;\n }\n\n strm.adler = state.check = 0;\n state.mode = TYPE;\n break;\n\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n strm.adler = state.check = zswap32(hold); //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = DICT;\n\n /* falls through */\n\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n return Z_NEED_DICT;\n }\n\n strm.adler = state.check = 1\n /*adler32(0L, Z_NULL, 0)*/\n ;\n state.mode = TYPE;\n\n /* falls through */\n\n case TYPE:\n if (flush === Z_BLOCK || flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n\n state.mode = CHECK;\n break;\n } //=== NEEDBITS(3); */\n\n\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.last = hold & 0x01\n /*BITS(1)*/\n ; //--- DROPBITS(1) ---//\n\n hold >>>= 1;\n bits -= 1; //---//\n\n switch (hold & 0x03) {\n /*BITS(2)*/\n case 0:\n /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n\n case 1:\n /* fixed block */\n fixedtables(state); //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n\n state.mode = LEN_;\n /* decode codes */\n\n if (flush === Z_TREES) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2; //---//\n\n break inf_leave;\n }\n\n break;\n\n case 2:\n /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD;\n } //--- DROPBITS(2) ---//\n\n\n hold >>>= 2;\n bits -= 2; //---//\n\n break;\n\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7; //---//\n //=== NEEDBITS(32); */\n\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if ((hold & 0xffff) !== (hold >>> 16 ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD;\n break;\n }\n\n state.length = hold & 0xffff; //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n\n hold = 0;\n bits = 0; //===//\n\n state.mode = COPY_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case COPY_:\n state.mode = COPY;\n\n /* falls through */\n\n case COPY:\n copy = state.length;\n\n if (copy) {\n if (copy > have) {\n copy = have;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n if (copy === 0) {\n break inf_leave;\n } //--- zmemcpy(put, next, copy); ---\n\n\n utils.arraySet(output, input, next, copy, put); //---//\n\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n } //Tracev((stderr, \"inflate: stored end\\n\"));\n\n\n state.mode = TYPE;\n break;\n\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.nlen = (hold & 0x1f) +\n /*BITS(5)*/\n 257; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ndist = (hold & 0x1f) +\n /*BITS(5)*/\n 1; //--- DROPBITS(5) ---//\n\n hold >>>= 5;\n bits -= 5; //---//\n\n state.ncode = (hold & 0x0f) +\n /*BITS(4)*/\n 4; //--- DROPBITS(4) ---//\n\n hold >>>= 4;\n bits -= 4; //---//\n //#ifndef PKZIP_BUG_WORKAROUND\n\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD;\n break;\n } //#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n\n\n state.have = 0;\n state.mode = LENLENS;\n\n /* falls through */\n\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.lens[order[state.have++]] = hold & 0x07; //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n }\n\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n } // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n\n\n state.lencode = state.lendyn;\n state.lenbits = 7;\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(CODES, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n\n\n state.have = 0;\n state.mode = CODELENS;\n\n /* falls through */\n\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.lens[state.have++] = here_val;\n } else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03); //BITS(2);\n //--- DROPBITS(2) ---//\n\n hold >>>= 2;\n bits -= 2; //---//\n } else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 3 + (hold & 0x07); //BITS(3);\n //--- DROPBITS(3) ---//\n\n hold >>>= 3;\n bits -= 3; //---//\n } else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n len = 0;\n copy = 11 + (hold & 0x7f); //BITS(7);\n //--- DROPBITS(7) ---//\n\n hold >>>= 7;\n bits -= 7; //---//\n }\n\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD;\n break;\n }\n\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n /* handle error breaks in while */\n\n\n if (state.mode === BAD) {\n break;\n }\n /* check for end-of-block code (better have one) */\n\n\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD;\n break;\n }\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n\n\n state.lenbits = 9;\n opts = {\n bits: state.lenbits\n };\n ret = inflate_table(LENS, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.lenbits = opts.bits; // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD;\n break;\n }\n\n state.distbits = 6; //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n\n state.distcode = state.distdyn;\n opts = {\n bits: state.distbits\n };\n ret = inflate_table(DISTS, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts); // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n\n state.distbits = opts.bits; // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD;\n break;\n } //Tracev((stderr, 'inflate: codes ok\\n'));\n\n\n state.mode = LEN_;\n\n if (flush === Z_TREES) {\n break inf_leave;\n }\n\n /* falls through */\n\n case LEN_:\n state.mode = LEN;\n\n /* falls through */\n\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n inflate_fast(strm, _out); //--- LOAD() ---\n\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits; //---\n\n if (state.mode === TYPE) {\n state.back = -1;\n }\n\n break;\n }\n\n state.back = 0;\n\n for (;;) {\n here = state.lencode[hold & (1 << state.lenbits) - 1];\n /*BITS(state.lenbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.lencode[last_val + ((hold & (1 << last_bits + last_op) - 1) >>\n /*BITS(last.bits + last.op)*/\n last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n state.length = here_val;\n\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE;\n break;\n }\n\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break;\n }\n\n state.extra = here_op & 15;\n state.mode = LENEXT;\n\n /* falls through */\n\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.length += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n\n\n state.was = state.length;\n state.mode = DIST;\n\n /* falls through */\n\n case DIST:\n for (;;) {\n here = state.distcode[hold & (1 << state.distbits) - 1];\n /*BITS(state.distbits)*/\n\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n }\n\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n\n for (;;) {\n here = state.distcode[last_val + ((hold & (1 << last_bits + last_op) - 1) >>\n /*BITS(last.bits + last.op)*/\n last_bits)];\n here_bits = here >>> 24;\n here_op = here >>> 16 & 0xff;\n here_val = here & 0xffff;\n\n if (last_bits + here_bits <= bits) {\n break;\n } //--- PULLBYTE() ---//\n\n\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8; //---//\n } //--- DROPBITS(last.bits) ---//\n\n\n hold >>>= last_bits;\n bits -= last_bits; //---//\n\n state.back += last_bits;\n } //--- DROPBITS(here.bits) ---//\n\n\n hold >>>= here_bits;\n bits -= here_bits; //---//\n\n state.back += here_bits;\n\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break;\n }\n\n state.offset = here_val;\n state.extra = here_op & 15;\n state.mode = DISTEXT;\n\n /* falls through */\n\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n\n while (bits < n) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n state.offset += hold & (1 << state.extra) - 1\n /*BITS(state.extra)*/\n ; //--- DROPBITS(state.extra) ---//\n\n hold >>>= state.extra;\n bits -= state.extra; //---//\n\n state.back += state.extra;\n } //#ifdef INFLATE_STRICT\n\n\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } //#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n\n\n state.mode = MATCH;\n\n /* falls through */\n\n case MATCH:\n if (left === 0) {\n break inf_leave;\n }\n\n copy = _out - left;\n\n if (state.offset > copy) {\n /* copy from window */\n copy = state.offset - copy;\n\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break;\n } // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // Trace((stderr, \"inflate.c too far\\n\"));\n // copy -= state.whave;\n // if (copy > state.length) { copy = state.length; }\n // if (copy > left) { copy = left; }\n // left -= copy;\n // state.length -= copy;\n // do {\n // output[put++] = 0;\n // } while (--copy);\n // if (state.length === 0) { state.mode = LEN; }\n // break;\n //#endif\n\n }\n\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n } else {\n from = state.wnext - copy;\n }\n\n if (copy > state.length) {\n copy = state.length;\n }\n\n from_source = state.window;\n } else {\n /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n\n if (copy > left) {\n copy = left;\n }\n\n left -= copy;\n state.length -= copy;\n\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n\n if (state.length === 0) {\n state.mode = LEN;\n }\n\n break;\n\n case LIT:\n if (left === 0) {\n break inf_leave;\n }\n\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--; // Use '|' instead of '+' to make sure that result is signed\n\n hold |= input[next++] << bits;\n bits += 8;\n } //===//\n\n\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out);\n }\n\n _out = left; // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n\n state.mode = LENGTH;\n\n /* falls through */\n\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) {\n break inf_leave;\n }\n\n have--;\n hold += input[next++] << bits;\n bits += 8;\n } //===//\n\n\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD;\n break;\n } //=== INITBITS();\n\n\n hold = 0;\n bits = 0; //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n\n state.mode = DONE;\n\n /* falls through */\n\n case DONE:\n ret = Z_STREAM_END;\n break inf_leave;\n\n case BAD:\n ret = Z_DATA_ERROR;\n break inf_leave;\n\n case MEM:\n return Z_MEM_ERROR;\n\n case SYNC:\n /* falls through */\n\n default:\n return Z_STREAM_ERROR;\n }\n } // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n //--- RESTORE() ---\n\n\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits; //---\n\n if (state.wsize || _out !== strm.avail_out && state.mode < BAD && (state.mode < CHECK || flush !== Z_FINISH)) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n }\n\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n\n if (state.wrap && _out) {\n strm.adler = state.check =\n /*UPDATE(state.check, strm.next_out - _out, _out);*/\n state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out);\n }\n\n strm.data_type = state.bits + (state.last ? 64 : 0) + (state.mode === TYPE ? 128 : 0) + (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n\n if ((_in === 0 && _out === 0 || flush === Z_FINISH) && ret === Z_OK) {\n ret = Z_BUF_ERROR;\n }\n\n return ret;\n}\n\nfunction inflateEnd(strm) {\n if (!strm || !strm.state\n /*|| strm->zfree == (free_func)0*/\n ) {\n return Z_STREAM_ERROR;\n }\n\n var state = strm.state;\n\n if (state.window) {\n state.window = null;\n }\n\n strm.state = null;\n return Z_OK;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n /* check state */\n\n if (!strm || !strm.state) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if ((state.wrap & 2) === 0) {\n return Z_STREAM_ERROR;\n }\n /* save header structure */\n\n\n state.head = head;\n head.done = false;\n return Z_OK;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n var state;\n var dictid;\n var ret;\n /* check state */\n\n if (!strm\n /* == Z_NULL */\n || !strm.state\n /* == Z_NULL */\n ) {\n return Z_STREAM_ERROR;\n }\n\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR;\n }\n /* check for correct dictionary identifier */\n\n\n if (state.mode === DICT) {\n dictid = 1;\n /* adler32(0, null, 0)*/\n\n /* dictid = adler32(dictid, dictionary, dictLength); */\n\n dictid = adler32(dictid, dictionary, dictLength, 0);\n\n if (dictid !== state.check) {\n return Z_DATA_ERROR;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n\n\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n\n state.havedict = 1; // Tracev((stderr, \"inflate: dictionary set\\n\"));\n\n return Z_OK;\n}\n\nexports.inflateReset = inflateReset;\nexports.inflateReset2 = inflateReset2;\nexports.inflateResetKeep = inflateResetKeep;\nexports.inflateInit = inflateInit;\nexports.inflateInit2 = inflateInit2;\nexports.inflate = inflate;\nexports.inflateEnd = inflateEnd;\nexports.inflateGetHeader = inflateGetHeader;\nexports.inflateSetDictionary = inflateSetDictionary;\nexports.inflateInfo = 'pako inflate (from Nodeca project)';\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n// See state defs from inflate.js\n\nvar BAD = 30;\n/* got a data error -- remain here until reset */\n\nvar TYPE = 12;\n/* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\n\nmodule.exports = function inflate_fast(strm, start) {\n var state;\n\n var _in;\n /* local strm.input */\n\n\n var last;\n /* have enough input while in < last */\n\n var _out;\n /* local strm.output */\n\n\n var beg;\n /* inflate()'s initial strm.output */\n\n var end;\n /* while out < end, enough space available */\n //#ifdef INFLATE_STRICT\n\n var dmax;\n /* maximum distance from zlib header */\n //#endif\n\n var wsize;\n /* window size or zero if not using window */\n\n var whave;\n /* valid bytes in the window */\n\n var wnext;\n /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n\n var s_window;\n /* allocated sliding window, if wsize != 0 */\n\n var hold;\n /* local strm.hold */\n\n var bits;\n /* local strm.bits */\n\n var lcode;\n /* local strm.lencode */\n\n var dcode;\n /* local strm.distcode */\n\n var lmask;\n /* mask for first level of length codes */\n\n var dmask;\n /* mask for first level of distance codes */\n\n var here;\n /* retrieved table entry */\n\n var op;\n /* code bits, operation, extra bits, or */\n\n /* window position, window bytes to copy */\n\n var len;\n /* match length, unused bytes */\n\n var dist;\n /* match distance */\n\n var from;\n /* where to copy match from */\n\n var from_source;\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n\n state = strm.state; //here = state.here;\n\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257); //#ifdef INFLATE_STRICT\n\n dmax = state.dmax; //#endif\n\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top: do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen: for (;;) {\n // Goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op === 0) {\n /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff\n /*here.val*/\n ;\n } else if (op & 16) {\n /* length base */\n len = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n len += hold & (1 << op) - 1;\n hold >>>= op;\n bits -= op;\n } //Tracevv((stderr, \"inflate: length %u\\n\", len));\n\n\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = dcode[hold & dmask];\n\n dodist: for (;;) {\n // goto emulation\n op = here >>> 24\n /*here.bits*/\n ;\n hold >>>= op;\n bits -= op;\n op = here >>> 16 & 0xff\n /*here.op*/\n ;\n\n if (op & 16) {\n /* distance base */\n dist = here & 0xffff\n /*here.val*/\n ;\n op &= 15;\n /* number of extra bits */\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n\n dist += hold & (1 << op) - 1; //#ifdef INFLATE_STRICT\n\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } //#endif\n\n\n hold >>>= op;\n bits -= op; //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n\n op = _out - beg;\n /* max distance in output */\n\n if (dist > op) {\n /* see if copy from window */\n op = dist - op;\n /* distance back in window */\n\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n } // (!) This block is disabled in zlib defaults,\n // don't enable it for binary compatibility\n //#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n // if (len <= op - whave) {\n // do {\n // output[_out++] = 0;\n // } while (--len);\n // continue top;\n // }\n // len -= op - whave;\n // do {\n // output[_out++] = 0;\n // } while (--op > whave);\n // if (op === 0) {\n // from = _out - dist;\n // do {\n // output[_out++] = output[from++];\n // } while (--len);\n // continue top;\n // }\n //#endif\n\n }\n\n from = 0; // window index\n\n from_source = s_window;\n\n if (wnext === 0) {\n /* very common case */\n from += wsize - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n } else if (wnext < op) {\n /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n\n if (op < len) {\n /* some from end of window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = 0;\n\n if (wnext < len) {\n /* some from start of window */\n op = wnext;\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n } else {\n /* contiguous in window */\n from += wnext - op;\n\n if (op < len) {\n /* some from window */\n len -= op;\n\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n\n from = _out - dist;\n /* rest from output */\n\n from_source = output;\n }\n }\n\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n\n if (len) {\n output[_out++] = from_source[from++];\n\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n } else {\n from = _out - dist;\n /* copy direct from output */\n\n do {\n /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n\n if (len) {\n output[_out++] = output[from++];\n\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n } else if ((op & 64) === 0) {\n /* 2nd level distance code */\n here = dcode[(here & 0xffff) + (\n /*here.val*/\n hold & (1 << op) - 1)];\n continue dodist;\n } else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } else if ((op & 64) === 0) {\n /* 2nd level length code */\n here = lcode[(here & 0xffff) + (\n /*here.val*/\n hold & (1 << op) - 1)];\n continue dolen;\n } else if (op & 32) {\n /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n } else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n\n\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n /* update state and return */\n\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = _in < last ? 5 + (last - _in) : 5 - (_in - last);\n strm.avail_out = _out < end ? 257 + (end - _out) : 257 - (_out - end);\n state.hold = hold;\n state.bits = bits;\n return;\n};","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar utils = require('../utils/common');\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592; //var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\nvar lbase = [\n/* Length codes 257..285 base */\n3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0];\nvar lext = [\n/* Length codes 257..285 extra */\n16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18, 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78];\nvar dbase = [\n/* Distance codes 0..29 base */\n1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577, 0, 0];\nvar dext = [\n/* Distance codes 0..29 extra */\n16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28, 29, 29, 64, 64];\n\nmodule.exports = function inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits; //here = opts.here; /* table entry for duplication */\n\n var len = 0;\n /* a code's length in bits */\n\n var sym = 0;\n /* index of code symbols */\n\n var min = 0,\n max = 0;\n /* minimum and maximum code lengths */\n\n var root = 0;\n /* number of index bits for root table */\n\n var curr = 0;\n /* number of index bits for current table */\n\n var drop = 0;\n /* code bits to drop for sub-table */\n\n var left = 0;\n /* number of prefix codes available */\n\n var used = 0;\n /* code entries in table used */\n\n var huff = 0;\n /* Huffman code */\n\n var incr;\n /* for incrementing code, index */\n\n var fill;\n /* index for replicating entries */\n\n var low;\n /* low bits for current root entry */\n\n var mask;\n /* mask for low root bits */\n\n var next;\n /* next available space in table */\n\n var base = null;\n /* base value table to use */\n\n var base_index = 0; // var shoextra; /* extra bits table to use */\n\n var end;\n /* use base and extra for symbol > end */\n\n var count = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n\n var offs = new utils.Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n\n var extra = null;\n var extra_index = 0;\n var here_bits, here_op, here_val;\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n /* bound code lengths, force root to be within code lengths */\n\n\n root = bits;\n\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) {\n break;\n }\n }\n\n if (root > max) {\n root = max;\n }\n\n if (max === 0) {\n /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = 1 << 24 | 64 << 16 | 0; //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n\n table[table_index++] = 1 << 24 | 64 << 16 | 0;\n opts.bits = 1;\n return 0;\n /* no symbols, but wait for decoding to report error */\n }\n\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) {\n break;\n }\n }\n\n if (root < min) {\n root = min;\n }\n /* check for an over-subscribed or incomplete set of lengths */\n\n\n left = 1;\n\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n\n if (left < 0) {\n return -1;\n }\n /* over-subscribed */\n\n }\n\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1;\n /* incomplete set */\n }\n /* generate offsets into symbol table for each length for sorting */\n\n\n offs[1] = 0;\n\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n /* sort symbols by length, by symbol order within each length */\n\n\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n\n\n if (type === CODES) {\n base = extra = work;\n /* dummy value--not used */\n\n end = 19;\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n } else {\n /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n /* initialize opts for loop */\n\n\n huff = 0;\n /* starting code */\n\n sym = 0;\n /* starting code symbol */\n\n len = min;\n /* starting code length */\n\n next = table_index;\n /* current table to fill in */\n\n curr = root;\n /* current table index bits */\n\n drop = 0;\n /* current bits to drop from code for index */\n\n low = -1;\n /* trigger new sub-table when len > root */\n\n used = 1 << root;\n /* use root table entries */\n\n mask = used - 1;\n /* mask for comparing low */\n\n /* check available table space */\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* process all codes and make table entries */\n\n\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n } else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n } else {\n here_op = 32 + 64;\n /* end of block */\n\n here_val = 0;\n }\n /* replicate for those indices with low len bits equal to huff */\n\n\n incr = 1 << len - drop;\n fill = 1 << curr;\n min = fill;\n /* save offset to next table */\n\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = here_bits << 24 | here_op << 16 | here_val | 0;\n } while (fill !== 0);\n /* backwards increment the len-bit code huff */\n\n\n incr = 1 << len - 1;\n\n while (huff & incr) {\n incr >>= 1;\n }\n\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n /* go to next symbol, update count, len */\n\n\n sym++;\n\n if (--count[len] === 0) {\n if (len === max) {\n break;\n }\n\n len = lens[lens_index + work[sym]];\n }\n /* create new sub-table if needed */\n\n\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n /* increment past last table */\n\n\n next += min;\n /* here min is 1 << curr */\n\n /* determine length of next table */\n\n curr = len - drop;\n left = 1 << curr;\n\n while (curr + drop < max) {\n left -= count[curr + drop];\n\n if (left <= 0) {\n break;\n }\n\n curr++;\n left <<= 1;\n }\n /* check for enough space */\n\n\n used += 1 << curr;\n\n if (type === LENS && used > ENOUGH_LENS || type === DISTS && used > ENOUGH_DISTS) {\n return 1;\n }\n /* point entry in root table to sub-table */\n\n\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n\n table[low] = root << 24 | curr << 16 | next - table_index | 0;\n }\n }\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n\n\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = len - drop << 24 | 64 << 16 | 0;\n }\n /* set return parameters */\n //opts.table_index += used;\n\n\n opts.bits = root;\n return 0;\n};","'use strict'; // (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nmodule.exports = {\n /* Allowed flush values; see deflate() and inflate() below for details */\n Z_NO_FLUSH: 0,\n Z_PARTIAL_FLUSH: 1,\n Z_SYNC_FLUSH: 2,\n Z_FULL_FLUSH: 3,\n Z_FINISH: 4,\n Z_BLOCK: 5,\n Z_TREES: 6,\n\n /* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\n Z_OK: 0,\n Z_STREAM_END: 1,\n Z_NEED_DICT: 2,\n Z_ERRNO: -1,\n Z_STREAM_ERROR: -2,\n Z_DATA_ERROR: -3,\n //Z_MEM_ERROR: -4,\n Z_BUF_ERROR: -5,\n //Z_VERSION_ERROR: -6,\n\n /* compression levels */\n Z_NO_COMPRESSION: 0,\n Z_BEST_SPEED: 1,\n Z_BEST_COMPRESSION: 9,\n Z_DEFAULT_COMPRESSION: -1,\n Z_FILTERED: 1,\n Z_HUFFMAN_ONLY: 2,\n Z_RLE: 3,\n Z_FIXED: 4,\n Z_DEFAULT_STRATEGY: 0,\n\n /* Possible values of the data_type field (though see inflate()) */\n Z_BINARY: 0,\n Z_TEXT: 1,\n //Z_ASCII: 1, // = Z_TEXT (deprecated)\n Z_UNKNOWN: 2,\n\n /* The deflate compression method */\n Z_DEFLATED: 8 //Z_NULL: null // Use -1 or null inline, depending on var type\n\n};","var _regeneratorRuntime = require(\"/home/daywalker/programmieren/cabana/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nvar _asyncToGenerator = require(\"/home/daywalker/programmieren/cabana/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/asyncToGenerator\");\n\nvar through2 = require('through2');\n\nvar BZ2 = require('./index');\n\nmodule.exports = Stream;\n\nfunction Stream() {\n var refPromise = null;\n var results = [];\n return through2({}, transform, flush);\n\n function transform(_x, _x2, _x3) {\n return _transform.apply(this, arguments);\n }\n\n function _transform() {\n _transform = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee(chunk, encoding, cb) {\n var ref;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return init();\n\n case 2:\n ref = _context.sent;\n BZ2.sendNextChunk(ref, chunk);\n results.forEach(this.push.bind(this)); // console.log('Transforming!', chunk.byteLength, resultBuff.byteLength);\n\n results = [];\n cb();\n\n case 7:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n return _transform.apply(this, arguments);\n }\n\n function flush(_x4) {\n return _flush.apply(this, arguments);\n }\n\n function _flush() {\n _flush = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2(cb) {\n var ref;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return init();\n\n case 2:\n ref = _context2.sent;\n BZ2.flush(ref);\n BZ2.finish(ref);\n results.forEach(this.push.bind(this)); // console.log('Flushing!', resultBuff.byteLength);\n\n results = [];\n cb();\n\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n return _flush.apply(this, arguments);\n }\n\n function init() {\n return _init.apply(this, arguments);\n }\n\n function _init() {\n _init = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee3() {\n var ref;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n if (!refPromise) {\n _context3.next = 2;\n break;\n }\n\n return _context3.abrupt(\"return\", refPromise);\n\n case 2:\n refPromise = BZ2.start();\n _context3.next = 5;\n return refPromise;\n\n case 5:\n ref = _context3.sent;\n ref.onData(function (buff) {\n results.push(buff);\n });\n return _context3.abrupt(\"return\", refPromise);\n\n case 8:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _init.apply(this, arguments);\n }\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\nvar runtime = function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n exports.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n exports.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n exports.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n exports.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function (error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n exports.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n exports.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return exports.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n exports.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n }; // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n\n return exports;\n}( // If this script is executing as a CommonJS module, use module.exports\n// as the regeneratorRuntime namespace. Otherwise create a new empty\n// object. Either way, the resulting object will be used to initialize\n// the regeneratorRuntime variable at the top of this file.\ntypeof module === \"object\" ? module.exports : {});\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}","var _regeneratorRuntime = require(\"/home/daywalker/programmieren/cabana/node_modules/babel-preset-react-app/node_modules/@babel/runtime/regenerator\");\n\nvar _asyncToGenerator = require(\"/home/daywalker/programmieren/cabana/node_modules/babel-preset-react-app/node_modules/@babel/runtime/helpers/asyncToGenerator\");\n\nvar Module = require('./libbz2/bzip2');\n\nvar Event = require('weakmap-event');\n\nvar _require = require('ap'),\n partial = _require.partial;\n\nvar initPromise = null;\nvar instance = null;\nvar fnPtr = null;\nvar inBuffSize = 1024 * 1024;\nvar outBuffSize = inBuffSize * 32;\nvar DataEvent = Event();\nvar stateStore = {};\nmodule.exports = {\n sendNextChunk: sendNextChunk,\n flush: flush,\n init: init,\n start: start,\n finish: finish,\n onData: DataEvent.listen\n};\n\nfunction sendNextChunk(ref, chunk) {\n ref.buffers.push(chunk);\n\n while (ref.currentBuffer || ref.buffers.length) {\n if (!ref.currentBuffer || ref.currentBuffer.byteLength < 1) {\n if (!ref.buffers.length) {\n break;\n }\n\n ref.currentBuffer = ref.buffers.shift();\n }\n\n var inSize = ref.currentBuffer.byteLength > inBuffSize ? inBuffSize : ref.currentBuffer.byteLength;\n instance.HEAPU8.set(ref.currentBuffer.slice(0, inSize), ref.inBuff); // console.log('Working on this chunk...', ref.currentBuffer.byteLength);\n\n ref.isFinished = !!instance._decompress(ref.ref, ref.inBuff, inSize, ref.outBuff, outBuffSize);\n\n if (ref.isFinished) {// console.log('FINISHED');\n }\n\n if (inSize === ref.currentBuffer.byteLength) {\n ref.currentBuffer = null;\n } else {\n ref.currentBuffer = ref.currentBuffer.slice(inSize);\n }\n }\n}\n\nfunction flush(ref) {\n while (!ref.isFinished) {\n ref.isFinished = !!instance._decompress(ref.ref, 0, 0, ref.outBuff, outBuffSize);\n } // console.log('Finished decompress');\n\n}\n\nfunction init() {\n return _init.apply(this, arguments);\n}\n\nfunction _init() {\n _init = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!initPromise) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt(\"return\", initPromise);\n\n case 2:\n initPromise = new Promise(function (resolve, reject) {\n var moduleInstance = Module({\n onRuntimeInitialized: onInit // memory growth is enabled, so whatever...\n // TOTAL_MEMORY: 1024 * 1024 * 1024\n\n });\n\n function onInit() {\n // console.log('onRuntimeInitialized');\n // should print garbage\n fnPtr = moduleInstance.addFunction(callback, 'viii'); // console.log('Registered a function', fnPtr);\n\n moduleInstance._registerCallback(fnPtr);\n\n instance = moduleInstance;\n resolve({\n instance: instance\n });\n }\n });\n return _context.abrupt(\"return\", initPromise);\n\n case 4:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _init.apply(this, arguments);\n}\n\nfunction callback(refNum, size, done) {\n var ref = stateStore[refNum];\n var buffer = ref.outBuff; // console.log('Callback', size, done);\n\n if (size > 0) {\n var resultView = new Uint8Array(instance.HEAPU8.buffer, buffer, size);\n var result = new Uint8Array(resultView);\n DataEvent.broadcast(ref, result);\n }\n\n if (done) {\n ref.isFinished = !!done; // console.log('FINISHED');\n }\n}\n\nfunction start() {\n return _start.apply(this, arguments);\n}\n\nfunction _start() {\n _start = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee2() {\n var inBuff, outBuff, ref;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return init();\n\n case 2:\n // console.log('start postinit');\n inBuff = instance._malloc(inBuffSize);\n outBuff = instance._malloc(outBuffSize);\n ref = instance._start(); // console.log('This is my ref', ref);\n\n stateStore[ref] = {\n ref: ref,\n inBuff: inBuff,\n outBuff: outBuff,\n buffers: []\n };\n stateStore[ref].onData = partial(DataEvent.listen, stateStore[ref]);\n return _context2.abrupt(\"return\", stateStore[ref]);\n\n case 8:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _start.apply(this, arguments);\n}\n\nfunction finish(_x) {\n return _finish.apply(this, arguments);\n}\n\nfunction _finish() {\n _finish = _asyncToGenerator(\n /*#__PURE__*/\n _regeneratorRuntime.mark(function _callee3(ref) {\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return init();\n\n case 2:\n // console.log('finish postinit');\n instance._finish(ref.ref); // console.log('finish postfinished', ref.inBuff);\n\n\n instance._free(ref.inBuff); // console.log('free');\n\n\n instance._free(ref.outBuff); // console.log('free');\n\n\n delete stateStore[ref.ref];\n\n case 6:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _finish.apply(this, arguments);\n}","var Module = function () {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n\n return function (Module) {\n Module = Module || {}; // The Module object: Our interface to the outside world. We import\n // and export values on it. There are various ways Module can be used:\n // 1. Not defined. We create it here\n // 2. A function parameter, function(Module) { ..generated code.. }\n // 3. pre-run appended it, var Module = {}; ..generated code..\n // 4. External script tag defines var Module.\n // We need to check if Module already exists (e.g. case 3 above).\n // Substitution will be replaced with actual code on later stage of the build,\n // this way Closure Compiler will not mangle it (e.g. case 4. above).\n // Note that if you want to run closure, and also to use Module\n // after the generated code, you will need to define var Module = {};\n // before the code. Then that object will be used in the code, and you\n // can continue to use Module afterwards as well.\n\n var Module = typeof Module !== 'undefined' ? Module : {}; // --pre-jses are emitted after the Module integration code, so that they can\n // refer to Module (if they choose; they can also define Module)\n // Route URL GET parameters to argc+argv\n\n if (typeof window === \"object\") {\n Module['arguments'] = window.location.search.substr(1).trim().split('&'); // If no args were passed arguments = [''], in which case kill the single empty string.\n\n if (!Module['arguments'][0]) Module['arguments'] = [];\n } // Sometimes an existing Module object exists with properties\n // meant to overwrite the default module functionality. Here\n // we collect those properties and reapply _after_ we configure\n // the current environment's defaults to avoid having to be so\n // defensive during initialization.\n\n\n var moduleOverrides = {};\n var key;\n\n for (key in Module) {\n if (Module.hasOwnProperty(key)) {\n moduleOverrides[key] = Module[key];\n }\n }\n\n Module['arguments'] = [];\n Module['thisProgram'] = './this.program';\n\n Module['quit'] = function (status, toThrow) {\n throw toThrow;\n };\n\n Module['preRun'] = [];\n Module['postRun'] = []; // The environment setup code below is customized to use Module.\n // *** Environment setup code ***\n\n var ENVIRONMENT_IS_WEB = false;\n var ENVIRONMENT_IS_WORKER = false;\n var ENVIRONMENT_IS_NODE = false;\n var ENVIRONMENT_IS_SHELL = false;\n ENVIRONMENT_IS_WEB = typeof window === 'object';\n ENVIRONMENT_IS_WORKER = typeof importScripts === 'function';\n ENVIRONMENT_IS_NODE = typeof process === 'object' && typeof require === 'function' && !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_WORKER;\n ENVIRONMENT_IS_SHELL = !ENVIRONMENT_IS_WEB && !ENVIRONMENT_IS_NODE && !ENVIRONMENT_IS_WORKER;\n\n if (Module['ENVIRONMENT']) {\n throw new Error('Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -s ENVIRONMENT=web or -s ENVIRONMENT=node)');\n } // Three configurations we can be running in:\n // 1) We could be the application main() thread running in the main JS UI thread. (ENVIRONMENT_IS_WORKER == false and ENVIRONMENT_IS_PTHREAD == false)\n // 2) We could be the application main() thread proxied to worker. (with Emscripten -s PROXY_TO_WORKER=1) (ENVIRONMENT_IS_WORKER == true, ENVIRONMENT_IS_PTHREAD == false)\n // 3) We could be an application pthread running in a worker. (ENVIRONMENT_IS_WORKER == true and ENVIRONMENT_IS_PTHREAD == true)\n\n\n assert(typeof Module['memoryInitializerPrefixURL'] === 'undefined', 'Module.memoryInitializerPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['pthreadMainPrefixURL'] === 'undefined', 'Module.pthreadMainPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['cdInitializerPrefixURL'] === 'undefined', 'Module.cdInitializerPrefixURL option was removed, use Module.locateFile instead');\n assert(typeof Module['filePackagePrefixURL'] === 'undefined', 'Module.filePackagePrefixURL option was removed, use Module.locateFile instead'); // `/` should be present at the end if `scriptDirectory` is not empty\n\n var scriptDirectory = '';\n\n function locateFile(path) {\n if (Module['locateFile']) {\n return Module['locateFile'](path, scriptDirectory);\n } else {\n return scriptDirectory + path;\n }\n }\n\n if (ENVIRONMENT_IS_NODE) {\n scriptDirectory = __dirname + '/'; // Expose functionality in the same simple way that the shells work\n // Note that we pollute the global namespace here, otherwise we break in node\n\n var nodeFS;\n var nodePath;\n\n Module['read'] = function shell_read(filename, binary) {\n var ret;\n ret = tryParseAsDataURI(filename);\n\n if (!ret) {\n if (!nodeFS) nodeFS = require('fs');\n if (!nodePath) nodePath = require('path');\n filename = nodePath['normalize'](filename);\n ret = nodeFS['readFileSync'](filename);\n }\n\n return binary ? ret : ret.toString();\n };\n\n Module['readBinary'] = function readBinary(filename) {\n var ret = Module['read'](filename, true);\n\n if (!ret.buffer) {\n ret = new Uint8Array(ret);\n }\n\n assert(ret.buffer);\n return ret;\n };\n\n if (process['argv'].length > 1) {\n Module['thisProgram'] = process['argv'][1].replace(/\\\\/g, '/');\n }\n\n Module['arguments'] = process['argv'].slice(2); // MODULARIZE will export the module in the proper place outside, we don't need to export here\n\n process['on']('uncaughtException', function (ex) {\n // suppress ExitStatus exceptions from showing an error\n if (!(ex instanceof ExitStatus)) {\n throw ex;\n }\n }); // Currently node will swallow unhandled rejections, but this behavior is\n // deprecated, and in the future it will exit with error status.\n\n process['on']('unhandledRejection', function (reason, p) {\n err('node.js exiting due to unhandled promise rejection');\n process['exit'](1);\n });\n\n Module['quit'] = function (status) {\n process['exit'](status);\n };\n\n Module['inspect'] = function () {\n return '[Emscripten Module object]';\n };\n } else if (ENVIRONMENT_IS_SHELL) {\n if (typeof read != 'undefined') {\n Module['read'] = function shell_read(f) {\n var data = tryParseAsDataURI(f);\n\n if (data) {\n return intArrayToString(data);\n }\n\n return read(f);\n };\n }\n\n Module['readBinary'] = function readBinary(f) {\n var data;\n data = tryParseAsDataURI(f);\n\n if (data) {\n return data;\n }\n\n if (typeof readbuffer === 'function') {\n return new Uint8Array(readbuffer(f));\n }\n\n data = read(f, 'binary');\n assert(typeof data === 'object');\n return data;\n };\n\n if (typeof scriptArgs != 'undefined') {\n Module['arguments'] = scriptArgs;\n } else if (typeof arguments != 'undefined') {\n Module['arguments'] = arguments;\n }\n\n if (typeof quit === 'function') {\n Module['quit'] = function (status) {\n quit(status);\n };\n }\n } else if (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) {\n if (ENVIRONMENT_IS_WEB) {\n if (document.currentScript) {\n scriptDirectory = document.currentScript.src;\n }\n } else {\n // worker\n scriptDirectory = self.location.href;\n } // When MODULARIZE (and not _INSTANCE), this JS may be executed later, after document.currentScript\n // is gone, so we saved it, and we use it here instead of any other info.\n\n\n if (_scriptDir) {\n scriptDirectory = _scriptDir;\n } // blob urls look like blob:http://site.com/etc/etc and we cannot infer anything from them.\n // otherwise, slice off the final part of the url to find the script directory.\n\n\n if (scriptDirectory.indexOf('blob:') !== 0) {\n scriptDirectory = scriptDirectory.split('/').slice(0, -1).join('/') + '/';\n } else {\n scriptDirectory = '';\n }\n\n Module['read'] = function shell_read(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.send(null);\n return xhr.responseText;\n } catch (err) {\n var data = tryParseAsDataURI(url);\n\n if (data) {\n return intArrayToString(data);\n }\n\n throw err;\n }\n };\n\n if (ENVIRONMENT_IS_WORKER) {\n Module['readBinary'] = function readBinary(url) {\n try {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, false);\n xhr.responseType = 'arraybuffer';\n xhr.send(null);\n return new Uint8Array(xhr.response);\n } catch (err) {\n var data = tryParseAsDataURI(url);\n\n if (data) {\n return data;\n }\n\n throw err;\n }\n };\n }\n\n Module['readAsync'] = function readAsync(url, onload, onerror) {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', url, true);\n xhr.responseType = 'arraybuffer';\n\n xhr.onload = function xhr_onload() {\n if (xhr.status == 200 || xhr.status == 0 && xhr.response) {\n // file URLs can return 0\n onload(xhr.response);\n return;\n }\n\n var data = tryParseAsDataURI(url);\n\n if (data) {\n onload(data.buffer);\n return;\n }\n\n onerror();\n };\n\n xhr.onerror = onerror;\n xhr.send(null);\n };\n\n Module['setWindowTitle'] = function (title) {\n document.title = title;\n };\n } else {\n throw new Error('environment detection error');\n } // Set up the out() and err() hooks, which are how we can print to stdout or\n // stderr, respectively.\n // If the user provided Module.print or printErr, use that. Otherwise,\n // console.log is checked first, as 'print' on the web will open a print dialogue\n // printErr is preferable to console.warn (works better in shells)\n // bind(console) is necessary to fix IE/Edge closed dev tools panel behavior.\n\n\n var out = Module['print'] || (typeof console !== 'undefined' ? console.log.bind(console) : typeof print !== 'undefined' ? print : null);\n var err = Module['printErr'] || (typeof printErr !== 'undefined' ? printErr : typeof console !== 'undefined' && console.warn.bind(console) || out); // *** Environment setup code ***\n // Merge back in the overrides\n\n for (key in moduleOverrides) {\n if (moduleOverrides.hasOwnProperty(key)) {\n Module[key] = moduleOverrides[key];\n }\n } // Free the object hierarchy contained in the overrides, this lets the GC\n // reclaim data used e.g. in memoryInitializerRequest, which is a large typed array.\n\n\n moduleOverrides = undefined; // {{PREAMBLE_ADDITIONS}}\n\n var STACK_ALIGN = 16; // stack management, and other functionality that is provided by the compiled code,\n // should not be used before it is ready\n\n _stackSave = _stackRestore = stackAlloc = setTempRet0 = getTempRet0 = function getTempRet0() {\n abort('cannot use the stack before compiled code is ready to run, and has provided stack access');\n };\n\n function staticAlloc(size) {\n assert(!staticSealed);\n var ret = STATICTOP;\n STATICTOP = STATICTOP + size + 15 & -16;\n assert(STATICTOP < TOTAL_MEMORY, 'not enough memory for static allocation - increase TOTAL_MEMORY');\n return ret;\n }\n\n function dynamicAlloc(size) {\n assert(DYNAMICTOP_PTR);\n var ret = HEAP32[DYNAMICTOP_PTR >> 2];\n var end = ret + size + 15 & -16;\n HEAP32[DYNAMICTOP_PTR >> 2] = end;\n\n if (end >= TOTAL_MEMORY) {\n var success = enlargeMemory();\n\n if (!success) {\n HEAP32[DYNAMICTOP_PTR >> 2] = ret;\n return 0;\n }\n }\n\n return ret;\n }\n\n function alignMemory(size, factor) {\n if (!factor) factor = STACK_ALIGN; // stack alignment (16-byte) by default\n\n var ret = size = Math.ceil(size / factor) * factor;\n return ret;\n }\n\n function getNativeTypeSize(type) {\n switch (type) {\n case 'i1':\n case 'i8':\n return 1;\n\n case 'i16':\n return 2;\n\n case 'i32':\n return 4;\n\n case 'i64':\n return 8;\n\n case 'float':\n return 4;\n\n case 'double':\n return 8;\n\n default:\n {\n if (type[type.length - 1] === '*') {\n return 4; // A pointer\n } else if (type[0] === 'i') {\n var bits = parseInt(type.substr(1));\n assert(bits % 8 === 0);\n return bits / 8;\n } else {\n return 0;\n }\n }\n }\n }\n\n function warnOnce(text) {\n if (!warnOnce.shown) warnOnce.shown = {};\n\n if (!warnOnce.shown[text]) {\n warnOnce.shown[text] = 1;\n err(text);\n }\n }\n\n var asm2wasmImports = {\n // special asm2wasm imports\n \"f64-rem\": function f64Rem(x, y) {\n return x % y;\n },\n \"debugger\": function _debugger() {\n debugger;\n }\n };\n var jsCallStartIndex = 1;\n var functionPointers = new Array(1); // 'sig' parameter is only used on LLVM wasm backend\n\n function addFunction(func, sig) {\n if (typeof sig === 'undefined') {\n err('warning: addFunction(): You should provide a wasm function signature string as a second argument. This is not necessary for asm.js and asm2wasm, but is required for the LLVM wasm backend, so it is recommended for full portability.');\n }\n\n var base = 0;\n\n for (var i = base; i < base + 1; i++) {\n if (!functionPointers[i]) {\n functionPointers[i] = func;\n return jsCallStartIndex + i;\n }\n }\n\n throw 'Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.';\n }\n\n function removeFunction(index) {\n functionPointers[index - jsCallStartIndex] = null;\n }\n\n var funcWrappers = {};\n\n function getFuncWrapper(func, sig) {\n if (!func) return; // on null pointer, return undefined\n\n assert(sig);\n\n if (!funcWrappers[sig]) {\n funcWrappers[sig] = {};\n }\n\n var sigCache = funcWrappers[sig];\n\n if (!sigCache[func]) {\n // optimize away arguments usage in common cases\n if (sig.length === 1) {\n sigCache[func] = function dynCall_wrapper() {\n return dynCall(sig, func);\n };\n } else if (sig.length === 2) {\n sigCache[func] = function dynCall_wrapper(arg) {\n return dynCall(sig, func, [arg]);\n };\n } else {\n // general case\n sigCache[func] = function dynCall_wrapper() {\n return dynCall(sig, func, Array.prototype.slice.call(arguments));\n };\n }\n }\n\n return sigCache[func];\n }\n\n function makeBigInt(low, high, unsigned) {\n return unsigned ? +(low >>> 0) + +(high >>> 0) * 4294967296.0 : +(low >>> 0) + +(high | 0) * 4294967296.0;\n }\n\n function dynCall(sig, ptr, args) {\n if (args && args.length) {\n assert(args.length == sig.length - 1);\n assert('dynCall_' + sig in Module, 'bad function pointer type - no table for sig \\'' + sig + '\\'');\n return Module['dynCall_' + sig].apply(null, [ptr].concat(args));\n } else {\n assert(sig.length == 1);\n assert('dynCall_' + sig in Module, 'bad function pointer type - no table for sig \\'' + sig + '\\'');\n return Module['dynCall_' + sig].call(null, ptr);\n }\n }\n\n function getCompilerSetting(name) {\n throw 'You must build with -s RETAIN_COMPILER_SETTINGS=1 for getCompilerSetting or emscripten_get_compiler_setting to work';\n }\n\n var Runtime = {\n // FIXME backwards compatibility layer for ports. Support some Runtime.*\n // for now, fix it there, then remove it from here. That way we\n // can minimize any period of breakage.\n dynCall: dynCall,\n // for SDL2 port\n // helpful errors\n getTempRet0: function getTempRet0() {\n abort('getTempRet0() is now a top-level function, after removing the Runtime object. Remove \"Runtime.\"');\n },\n staticAlloc: function staticAlloc() {\n abort('staticAlloc() is now a top-level function, after removing the Runtime object. Remove \"Runtime.\"');\n },\n stackAlloc: function stackAlloc() {\n abort('stackAlloc() is now a top-level function, after removing the Runtime object. Remove \"Runtime.\"');\n }\n }; // The address globals begin at. Very low in memory, for code size and optimization opportunities.\n // Above 0 is static memory, starting with globals.\n // Then the stack.\n // Then 'dynamic' memory for sbrk.\n\n var GLOBAL_BASE = 1024; // === Preamble library stuff ===\n // Documentation for the public APIs defined in this file must be updated in:\n // site/source/docs/api_reference/preamble.js.rst\n // A prebuilt local version of the documentation is available at:\n // site/build/text/docs/api_reference/preamble.js.txt\n // You can also build docs locally as HTML or other formats in site/\n // An online HTML version (which may be of a different version of Emscripten)\n // is up at http://kripken.github.io/emscripten-site/docs/api_reference/preamble.js.html\n //========================================\n // Runtime essentials\n //========================================\n\n var ABORT = 0; // whether we are quitting the application. no code should run after this. set in exit() and abort()\n\n var EXITSTATUS = 0;\n /** @type {function(*, string=)} */\n\n function assert(condition, text) {\n if (!condition) {\n abort('Assertion failed: ' + text);\n }\n }\n\n var globalScope = this; // Returns the C function with a specified identifier (for C++, you need to do manual name mangling)\n\n function getCFunc(ident) {\n var func = Module['_' + ident]; // closure exported function\n\n assert(func, 'Cannot call unknown function ' + ident + ', make sure it is exported');\n return func;\n }\n\n var JSfuncs = {\n // Helpers for cwrap -- it can't refer to Runtime directly because it might\n // be renamed by closure, instead it calls JSfuncs['stackSave'].body to find\n // out what the minified function name is.\n 'stackSave': function stackSave() {\n _stackSave();\n },\n 'stackRestore': function stackRestore() {\n _stackRestore();\n },\n // type conversion from js to c\n 'arrayToC': function arrayToC(arr) {\n var ret = stackAlloc(arr.length);\n writeArrayToMemory(arr, ret);\n return ret;\n },\n 'stringToC': function stringToC(str) {\n var ret = 0;\n\n if (str !== null && str !== undefined && str !== 0) {\n // null string\n // at most 4 bytes per UTF-8 code point, +1 for the trailing '\\0'\n var len = (str.length << 2) + 1;\n ret = stackAlloc(len);\n stringToUTF8(str, ret, len);\n }\n\n return ret;\n }\n }; // For fast lookup of conversion functions\n\n var toC = {\n 'string': JSfuncs['stringToC'],\n 'array': JSfuncs['arrayToC']\n }; // C calling interface.\n\n function ccall(ident, returnType, argTypes, args, opts) {\n function convertReturnValue(ret) {\n if (returnType === 'string') return Pointer_stringify(ret);\n if (returnType === 'boolean') return Boolean(ret);\n return ret;\n }\n\n var func = getCFunc(ident);\n var cArgs = [];\n var stack = 0;\n assert(returnType !== 'array', 'Return type should not be \"array\".');\n\n if (args) {\n for (var i = 0; i < args.length; i++) {\n var converter = toC[argTypes[i]];\n\n if (converter) {\n if (stack === 0) stack = _stackSave();\n cArgs[i] = converter(args[i]);\n } else {\n cArgs[i] = args[i];\n }\n }\n }\n\n var ret = func.apply(null, cArgs);\n ret = convertReturnValue(ret);\n if (stack !== 0) _stackRestore(stack);\n return ret;\n }\n\n function cwrap(ident, returnType, argTypes, opts) {\n return function () {\n return ccall(ident, returnType, argTypes, arguments, opts);\n };\n }\n /** @type {function(number, number, string, boolean=)} */\n\n\n function setValue(ptr, value, type, noSafe) {\n type = type || 'i8';\n if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit\n\n switch (type) {\n case 'i1':\n HEAP8[ptr >> 0] = value;\n break;\n\n case 'i8':\n HEAP8[ptr >> 0] = value;\n break;\n\n case 'i16':\n HEAP16[ptr >> 1] = value;\n break;\n\n case 'i32':\n HEAP32[ptr >> 2] = value;\n break;\n\n case 'i64':\n tempI64 = [value >>> 0, (tempDouble = value, +Math_abs(tempDouble) >= 1.0 ? tempDouble > 0.0 ? (Math_min(+Math_floor(tempDouble / 4294967296.0), 4294967295.0) | 0) >>> 0 : ~~+Math_ceil((tempDouble - +(~~tempDouble >>> 0)) / 4294967296.0) >>> 0 : 0)], HEAP32[ptr >> 2] = tempI64[0], HEAP32[ptr + 4 >> 2] = tempI64[1];\n break;\n\n case 'float':\n HEAPF32[ptr >> 2] = value;\n break;\n\n case 'double':\n HEAPF64[ptr >> 3] = value;\n break;\n\n default:\n abort('invalid type for setValue: ' + type);\n }\n }\n /** @type {function(number, string, boolean=)} */\n\n\n function getValue(ptr, type, noSafe) {\n type = type || 'i8';\n if (type.charAt(type.length - 1) === '*') type = 'i32'; // pointers are 32-bit\n\n switch (type) {\n case 'i1':\n return HEAP8[ptr >> 0];\n\n case 'i8':\n return HEAP8[ptr >> 0];\n\n case 'i16':\n return HEAP16[ptr >> 1];\n\n case 'i32':\n return HEAP32[ptr >> 2];\n\n case 'i64':\n return HEAP32[ptr >> 2];\n\n case 'float':\n return HEAPF32[ptr >> 2];\n\n case 'double':\n return HEAPF64[ptr >> 3];\n\n default:\n abort('invalid type for getValue: ' + type);\n }\n\n return null;\n }\n\n var ALLOC_NORMAL = 0; // Tries to use _malloc()\n\n var ALLOC_STACK = 1; // Lives for the duration of the current function call\n\n var ALLOC_STATIC = 2; // Cannot be freed\n\n var ALLOC_DYNAMIC = 3; // Cannot be freed except through sbrk\n\n var ALLOC_NONE = 4; // Do not allocate\n // allocate(): This is for internal use. You can use it yourself as well, but the interface\n // is a little tricky (see docs right below). The reason is that it is optimized\n // for multiple syntaxes to save space in generated code. So you should\n // normally not use allocate(), and instead allocate memory using _malloc(),\n // initialize it with setValue(), and so forth.\n // @slab: An array of data, or a number. If a number, then the size of the block to allocate,\n // in *bytes* (note that this is sometimes confusing: the next parameter does not\n // affect this!)\n // @types: Either an array of types, one for each byte (or 0 if no type at that position),\n // or a single type which is used for the entire block. This only matters if there\n // is initial data - if @slab is a number, then this does not matter at all and is\n // ignored.\n // @allocator: How to allocate memory, see ALLOC_*\n\n /** @type {function((TypedArray|Array<number>|number), string, number, number=)} */\n\n function allocate(slab, types, allocator, ptr) {\n var zeroinit, size;\n\n if (typeof slab === 'number') {\n zeroinit = true;\n size = slab;\n } else {\n zeroinit = false;\n size = slab.length;\n }\n\n var singleType = typeof types === 'string' ? types : null;\n var ret;\n\n if (allocator == ALLOC_NONE) {\n ret = ptr;\n } else {\n ret = [typeof _malloc === 'function' ? _malloc : staticAlloc, stackAlloc, staticAlloc, dynamicAlloc][allocator === undefined ? ALLOC_STATIC : allocator](Math.max(size, singleType ? 1 : types.length));\n }\n\n if (zeroinit) {\n var stop;\n ptr = ret;\n assert((ret & 3) == 0);\n stop = ret + (size & ~3);\n\n for (; ptr < stop; ptr += 4) {\n HEAP32[ptr >> 2] = 0;\n }\n\n stop = ret + size;\n\n while (ptr < stop) {\n HEAP8[ptr++ >> 0] = 0;\n }\n\n return ret;\n }\n\n if (singleType === 'i8') {\n if (slab.subarray || slab.slice) {\n HEAPU8.set(\n /** @type {!Uint8Array} */\n slab, ret);\n } else {\n HEAPU8.set(new Uint8Array(slab), ret);\n }\n\n return ret;\n }\n\n var i = 0,\n type,\n typeSize,\n previousType;\n\n while (i < size) {\n var curr = slab[i];\n type = singleType || types[i];\n\n if (type === 0) {\n i++;\n continue;\n }\n\n assert(type, 'Must know what type to store in allocate!');\n if (type == 'i64') type = 'i32'; // special case: we have one i32 here, and one i32 later\n\n setValue(ret + i, curr, type); // no need to look up size unless type changes, so cache it\n\n if (previousType !== type) {\n typeSize = getNativeTypeSize(type);\n previousType = type;\n }\n\n i += typeSize;\n }\n\n return ret;\n } // Allocate memory during any stage of startup - static memory early on, dynamic memory later, malloc when ready\n\n\n function getMemory(size) {\n if (!staticSealed) return staticAlloc(size);\n if (!runtimeInitialized) return dynamicAlloc(size);\n return _malloc(size);\n }\n /** @type {function(number, number=)} */\n\n\n function Pointer_stringify(ptr, length) {\n if (length === 0 || !ptr) return ''; // Find the length, and check for UTF while doing so\n\n var hasUtf = 0;\n var t;\n var i = 0;\n\n while (1) {\n assert(ptr + i < TOTAL_MEMORY);\n t = HEAPU8[ptr + i >> 0];\n hasUtf |= t;\n if (t == 0 && !length) break;\n i++;\n if (length && i == length) break;\n }\n\n if (!length) length = i;\n var ret = '';\n\n if (hasUtf < 128) {\n var MAX_CHUNK = 1024; // split up into chunks, because .apply on a huge string can overflow the stack\n\n var curr;\n\n while (length > 0) {\n curr = String.fromCharCode.apply(String, HEAPU8.subarray(ptr, ptr + Math.min(length, MAX_CHUNK)));\n ret = ret ? ret + curr : curr;\n ptr += MAX_CHUNK;\n length -= MAX_CHUNK;\n }\n\n return ret;\n }\n\n return UTF8ToString(ptr);\n } // Given a pointer 'ptr' to a null-terminated ASCII-encoded string in the emscripten HEAP, returns\n // a copy of that string as a Javascript String object.\n\n\n function AsciiToString(ptr) {\n var str = '';\n\n while (1) {\n var ch = HEAP8[ptr++ >> 0];\n if (!ch) return str;\n str += String.fromCharCode(ch);\n }\n } // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\n // null-terminated and encoded in ASCII form. The copy will require at most str.length+1 bytes of space in the HEAP.\n\n\n function stringToAscii(str, outPtr) {\n return writeAsciiToMemory(str, outPtr, false);\n } // Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the given array that contains uint8 values, returns\n // a copy of that string as a Javascript String object.\n\n\n var UTF8Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf8') : undefined;\n\n function UTF8ArrayToString(u8Array, idx) {\n var endPtr = idx; // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\n\n while (u8Array[endPtr]) {\n ++endPtr;\n }\n\n if (endPtr - idx > 16 && u8Array.subarray && UTF8Decoder) {\n return UTF8Decoder.decode(u8Array.subarray(idx, endPtr));\n } else {\n var u0, u1, u2, u3, u4, u5;\n var str = '';\n\n while (1) {\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\n u0 = u8Array[idx++];\n if (!u0) return str;\n\n if (!(u0 & 0x80)) {\n str += String.fromCharCode(u0);\n continue;\n }\n\n u1 = u8Array[idx++] & 63;\n\n if ((u0 & 0xE0) == 0xC0) {\n str += String.fromCharCode((u0 & 31) << 6 | u1);\n continue;\n }\n\n u2 = u8Array[idx++] & 63;\n\n if ((u0 & 0xF0) == 0xE0) {\n u0 = (u0 & 15) << 12 | u1 << 6 | u2;\n } else {\n u3 = u8Array[idx++] & 63;\n\n if ((u0 & 0xF8) == 0xF0) {\n u0 = (u0 & 7) << 18 | u1 << 12 | u2 << 6 | u3;\n } else {\n u4 = u8Array[idx++] & 63;\n\n if ((u0 & 0xFC) == 0xF8) {\n u0 = (u0 & 3) << 24 | u1 << 18 | u2 << 12 | u3 << 6 | u4;\n } else {\n u5 = u8Array[idx++] & 63;\n u0 = (u0 & 1) << 30 | u1 << 24 | u2 << 18 | u3 << 12 | u4 << 6 | u5;\n }\n }\n }\n\n if (u0 < 0x10000) {\n str += String.fromCharCode(u0);\n } else {\n var ch = u0 - 0x10000;\n str += String.fromCharCode(0xD800 | ch >> 10, 0xDC00 | ch & 0x3FF);\n }\n }\n }\n } // Given a pointer 'ptr' to a null-terminated UTF8-encoded string in the emscripten HEAP, returns\n // a copy of that string as a Javascript String object.\n\n\n function UTF8ToString(ptr) {\n return UTF8ArrayToString(HEAPU8, ptr);\n } // Copies the given Javascript String object 'str' to the given byte array at address 'outIdx',\n // encoded in UTF8 form and null-terminated. The copy will require at most str.length*4+1 bytes of space in the HEAP.\n // Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\n // Parameters:\n // str: the Javascript string to copy.\n // outU8Array: the array to copy to. Each index in this array is assumed to be one 8-byte element.\n // outIdx: The starting offset in the array to begin the copying.\n // maxBytesToWrite: The maximum number of bytes this function can write to the array.\n // This count should include the null terminator,\n // i.e. if maxBytesToWrite=1, only the null terminator will be written and nothing else.\n // maxBytesToWrite=0 does not write any bytes to the output, not even the null terminator.\n // Returns the number of bytes written, EXCLUDING the null terminator.\n\n\n function stringToUTF8Array(str, outU8Array, outIdx, maxBytesToWrite) {\n if (!(maxBytesToWrite > 0)) // Parameter maxBytesToWrite is not optional. Negative values, 0, null, undefined and false each don't write out any bytes.\n return 0;\n var startIdx = outIdx;\n var endIdx = outIdx + maxBytesToWrite - 1; // -1 for string null terminator.\n\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n // For UTF8 byte structure, see http://en.wikipedia.org/wiki/UTF-8#Description and https://www.ietf.org/rfc/rfc2279.txt and https://tools.ietf.org/html/rfc3629\n var u = str.charCodeAt(i); // possibly a lead surrogate\n\n if (u >= 0xD800 && u <= 0xDFFF) {\n var u1 = str.charCodeAt(++i);\n u = 0x10000 + ((u & 0x3FF) << 10) | u1 & 0x3FF;\n }\n\n if (u <= 0x7F) {\n if (outIdx >= endIdx) break;\n outU8Array[outIdx++] = u;\n } else if (u <= 0x7FF) {\n if (outIdx + 1 >= endIdx) break;\n outU8Array[outIdx++] = 0xC0 | u >> 6;\n outU8Array[outIdx++] = 0x80 | u & 63;\n } else if (u <= 0xFFFF) {\n if (outIdx + 2 >= endIdx) break;\n outU8Array[outIdx++] = 0xE0 | u >> 12;\n outU8Array[outIdx++] = 0x80 | u >> 6 & 63;\n outU8Array[outIdx++] = 0x80 | u & 63;\n } else if (u <= 0x1FFFFF) {\n if (outIdx + 3 >= endIdx) break;\n outU8Array[outIdx++] = 0xF0 | u >> 18;\n outU8Array[outIdx++] = 0x80 | u >> 12 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 6 & 63;\n outU8Array[outIdx++] = 0x80 | u & 63;\n } else if (u <= 0x3FFFFFF) {\n if (outIdx + 4 >= endIdx) break;\n outU8Array[outIdx++] = 0xF8 | u >> 24;\n outU8Array[outIdx++] = 0x80 | u >> 18 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 12 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 6 & 63;\n outU8Array[outIdx++] = 0x80 | u & 63;\n } else {\n if (outIdx + 5 >= endIdx) break;\n outU8Array[outIdx++] = 0xFC | u >> 30;\n outU8Array[outIdx++] = 0x80 | u >> 24 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 18 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 12 & 63;\n outU8Array[outIdx++] = 0x80 | u >> 6 & 63;\n outU8Array[outIdx++] = 0x80 | u & 63;\n }\n } // Null-terminate the pointer to the buffer.\n\n\n outU8Array[outIdx] = 0;\n return outIdx - startIdx;\n } // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\n // null-terminated and encoded in UTF8 form. The copy will require at most str.length*4+1 bytes of space in the HEAP.\n // Use the function lengthBytesUTF8 to compute the exact number of bytes (excluding null terminator) that this function will write.\n // Returns the number of bytes written, EXCLUDING the null terminator.\n\n\n function stringToUTF8(str, outPtr, maxBytesToWrite) {\n assert(typeof maxBytesToWrite == 'number', 'stringToUTF8(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!');\n return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite);\n } // Returns the number of bytes the given Javascript string takes if encoded as a UTF8 byte array, EXCLUDING the null terminator byte.\n\n\n function lengthBytesUTF8(str) {\n var len = 0;\n\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! So decode UTF16->UTF32->UTF8.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var u = str.charCodeAt(i); // possibly a lead surrogate\n\n if (u >= 0xD800 && u <= 0xDFFF) u = 0x10000 + ((u & 0x3FF) << 10) | str.charCodeAt(++i) & 0x3FF;\n\n if (u <= 0x7F) {\n ++len;\n } else if (u <= 0x7FF) {\n len += 2;\n } else if (u <= 0xFFFF) {\n len += 3;\n } else if (u <= 0x1FFFFF) {\n len += 4;\n } else if (u <= 0x3FFFFFF) {\n len += 5;\n } else {\n len += 6;\n }\n }\n\n return len;\n } // Given a pointer 'ptr' to a null-terminated UTF16LE-encoded string in the emscripten HEAP, returns\n // a copy of that string as a Javascript String object.\n\n\n var UTF16Decoder = typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-16le') : undefined;\n\n function UTF16ToString(ptr) {\n assert(ptr % 2 == 0, 'Pointer passed to UTF16ToString must be aligned to two bytes!');\n var endPtr = ptr; // TextDecoder needs to know the byte length in advance, it doesn't stop on null terminator by itself.\n // Also, use the length info to avoid running tiny strings through TextDecoder, since .subarray() allocates garbage.\n\n var idx = endPtr >> 1;\n\n while (HEAP16[idx]) {\n ++idx;\n }\n\n endPtr = idx << 1;\n\n if (endPtr - ptr > 32 && UTF16Decoder) {\n return UTF16Decoder.decode(HEAPU8.subarray(ptr, endPtr));\n } else {\n var i = 0;\n var str = '';\n\n while (1) {\n var codeUnit = HEAP16[ptr + i * 2 >> 1];\n if (codeUnit == 0) return str;\n ++i; // fromCharCode constructs a character from a UTF-16 code unit, so we can pass the UTF16 string right through.\n\n str += String.fromCharCode(codeUnit);\n }\n }\n } // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\n // null-terminated and encoded in UTF16 form. The copy will require at most str.length*4+2 bytes of space in the HEAP.\n // Use the function lengthBytesUTF16() to compute the exact number of bytes (excluding null terminator) that this function will write.\n // Parameters:\n // str: the Javascript string to copy.\n // outPtr: Byte address in Emscripten HEAP where to write the string to.\n // maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\n // terminator, i.e. if maxBytesToWrite=2, only the null terminator will be written and nothing else.\n // maxBytesToWrite<2 does not write any bytes to the output, not even the null terminator.\n // Returns the number of bytes written, EXCLUDING the null terminator.\n\n\n function stringToUTF16(str, outPtr, maxBytesToWrite) {\n assert(outPtr % 2 == 0, 'Pointer passed to stringToUTF16 must be aligned to two bytes!');\n assert(typeof maxBytesToWrite == 'number', 'stringToUTF16(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\n\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 0x7FFFFFFF;\n }\n\n if (maxBytesToWrite < 2) return 0;\n maxBytesToWrite -= 2; // Null terminator.\n\n var startPtr = outPtr;\n var numCharsToWrite = maxBytesToWrite < str.length * 2 ? maxBytesToWrite / 2 : str.length;\n\n for (var i = 0; i < numCharsToWrite; ++i) {\n // charCodeAt returns a UTF-16 encoded code unit, so it can be directly written to the HEAP.\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\n\n HEAP16[outPtr >> 1] = codeUnit;\n outPtr += 2;\n } // Null-terminate the pointer to the HEAP.\n\n\n HEAP16[outPtr >> 1] = 0;\n return outPtr - startPtr;\n } // Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\n\n\n function lengthBytesUTF16(str) {\n return str.length * 2;\n }\n\n function UTF32ToString(ptr) {\n assert(ptr % 4 == 0, 'Pointer passed to UTF32ToString must be aligned to four bytes!');\n var i = 0;\n var str = '';\n\n while (1) {\n var utf32 = HEAP32[ptr + i * 4 >> 2];\n if (utf32 == 0) return str;\n ++i; // Gotcha: fromCharCode constructs a character from a UTF-16 encoded code (pair), not from a Unicode code point! So encode the code point to UTF-16 for constructing.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n\n if (utf32 >= 0x10000) {\n var ch = utf32 - 0x10000;\n str += String.fromCharCode(0xD800 | ch >> 10, 0xDC00 | ch & 0x3FF);\n } else {\n str += String.fromCharCode(utf32);\n }\n }\n } // Copies the given Javascript String object 'str' to the emscripten HEAP at address 'outPtr',\n // null-terminated and encoded in UTF32 form. The copy will require at most str.length*4+4 bytes of space in the HEAP.\n // Use the function lengthBytesUTF32() to compute the exact number of bytes (excluding null terminator) that this function will write.\n // Parameters:\n // str: the Javascript string to copy.\n // outPtr: Byte address in Emscripten HEAP where to write the string to.\n // maxBytesToWrite: The maximum number of bytes this function can write to the array. This count should include the null\n // terminator, i.e. if maxBytesToWrite=4, only the null terminator will be written and nothing else.\n // maxBytesToWrite<4 does not write any bytes to the output, not even the null terminator.\n // Returns the number of bytes written, EXCLUDING the null terminator.\n\n\n function stringToUTF32(str, outPtr, maxBytesToWrite) {\n assert(outPtr % 4 == 0, 'Pointer passed to stringToUTF32 must be aligned to four bytes!');\n assert(typeof maxBytesToWrite == 'number', 'stringToUTF32(str, outPtr, maxBytesToWrite) is missing the third parameter that specifies the length of the output buffer!'); // Backwards compatibility: if max bytes is not specified, assume unsafe unbounded write is allowed.\n\n if (maxBytesToWrite === undefined) {\n maxBytesToWrite = 0x7FFFFFFF;\n }\n\n if (maxBytesToWrite < 4) return 0;\n var startPtr = outPtr;\n var endPtr = startPtr + maxBytesToWrite - 4;\n\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var codeUnit = str.charCodeAt(i); // possibly a lead surrogate\n\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) {\n var trailSurrogate = str.charCodeAt(++i);\n codeUnit = 0x10000 + ((codeUnit & 0x3FF) << 10) | trailSurrogate & 0x3FF;\n }\n\n HEAP32[outPtr >> 2] = codeUnit;\n outPtr += 4;\n if (outPtr + 4 > endPtr) break;\n } // Null-terminate the pointer to the HEAP.\n\n\n HEAP32[outPtr >> 2] = 0;\n return outPtr - startPtr;\n } // Returns the number of bytes the given Javascript string takes if encoded as a UTF16 byte array, EXCLUDING the null terminator byte.\n\n\n function lengthBytesUTF32(str) {\n var len = 0;\n\n for (var i = 0; i < str.length; ++i) {\n // Gotcha: charCodeAt returns a 16-bit word that is a UTF-16 encoded code unit, not a Unicode code point of the character! We must decode the string to UTF-32 to the heap.\n // See http://unicode.org/faq/utf_bom.html#utf16-3\n var codeUnit = str.charCodeAt(i);\n if (codeUnit >= 0xD800 && codeUnit <= 0xDFFF) ++i; // possibly a lead surrogate, so skip over the tail surrogate.\n\n len += 4;\n }\n\n return len;\n } // Allocate heap space for a JS string, and write it there.\n // It is the responsibility of the caller to free() that memory.\n\n\n function allocateUTF8(str) {\n var size = lengthBytesUTF8(str) + 1;\n\n var ret = _malloc(size);\n\n if (ret) stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n } // Allocate stack space for a JS string, and write it there.\n\n\n function allocateUTF8OnStack(str) {\n var size = lengthBytesUTF8(str) + 1;\n var ret = stackAlloc(size);\n stringToUTF8Array(str, HEAP8, ret, size);\n return ret;\n }\n\n function demangle(func) {\n warnOnce('warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling');\n return func;\n }\n\n function demangleAll(text) {\n var regex = /__Z[\\w\\d_]+/g;\n return text.replace(regex, function (x) {\n var y = demangle(x);\n return x === y ? x : x + ' [' + y + ']';\n });\n }\n\n function jsStackTrace() {\n var err = new Error();\n\n if (!err.stack) {\n // IE10+ special cases: It does have callstack info, but it is only populated if an Error object is thrown,\n // so try that as a special-case.\n try {\n throw new Error(0);\n } catch (e) {\n err = e;\n }\n\n if (!err.stack) {\n return '(no stack trace available)';\n }\n }\n\n return err.stack.toString();\n }\n\n function stackTrace() {\n var js = jsStackTrace();\n if (Module['extraStackTrace']) js += '\\n' + Module['extraStackTrace']();\n return demangleAll(js);\n } // Memory management\n\n\n var PAGE_SIZE = 16384;\n var WASM_PAGE_SIZE = 65536;\n var ASMJS_PAGE_SIZE = 16777216;\n var MIN_TOTAL_MEMORY = 16777216;\n\n function alignUp(x, multiple) {\n if (x % multiple > 0) {\n x += multiple - x % multiple;\n }\n\n return x;\n }\n\n var HEAP,\n /** @type {ArrayBuffer} */\n buffer,\n /** @type {Int8Array} */\n HEAP8,\n /** @type {Uint8Array} */\n HEAPU8,\n /** @type {Int16Array} */\n HEAP16,\n /** @type {Uint16Array} */\n HEAPU16,\n /** @type {Int32Array} */\n HEAP32,\n /** @type {Uint32Array} */\n HEAPU32,\n /** @type {Float32Array} */\n HEAPF32,\n /** @type {Float64Array} */\n HEAPF64;\n\n function updateGlobalBuffer(buf) {\n Module['buffer'] = buffer = buf;\n }\n\n function updateGlobalBufferViews() {\n Module['HEAP8'] = HEAP8 = new Int8Array(buffer);\n Module['HEAP16'] = HEAP16 = new Int16Array(buffer);\n Module['HEAP32'] = HEAP32 = new Int32Array(buffer);\n Module['HEAPU8'] = HEAPU8 = new Uint8Array(buffer);\n Module['HEAPU16'] = HEAPU16 = new Uint16Array(buffer);\n Module['HEAPU32'] = HEAPU32 = new Uint32Array(buffer);\n Module['HEAPF32'] = HEAPF32 = new Float32Array(buffer);\n Module['HEAPF64'] = HEAPF64 = new Float64Array(buffer);\n }\n\n var STATIC_BASE, STATICTOP, staticSealed; // static area\n\n var STACK_BASE, STACKTOP, STACK_MAX; // stack area\n\n var DYNAMIC_BASE, DYNAMICTOP_PTR; // dynamic area handled by sbrk\n\n STATIC_BASE = STATICTOP = STACK_BASE = STACKTOP = STACK_MAX = DYNAMIC_BASE = DYNAMICTOP_PTR = 0;\n staticSealed = false; // Initializes the stack cookie. Called at the startup of main and at the startup of each thread in pthreads mode.\n\n function writeStackCookie() {\n assert((STACK_MAX & 3) == 0);\n HEAPU32[(STACK_MAX >> 2) - 1] = 0x02135467;\n HEAPU32[(STACK_MAX >> 2) - 2] = 0x89BACDFE;\n }\n\n function checkStackCookie() {\n if (HEAPU32[(STACK_MAX >> 2) - 1] != 0x02135467 || HEAPU32[(STACK_MAX >> 2) - 2] != 0x89BACDFE) {\n abort('Stack overflow! Stack cookie has been overwritten, expected hex dwords 0x89BACDFE and 0x02135467, but received 0x' + HEAPU32[(STACK_MAX >> 2) - 2].toString(16) + ' ' + HEAPU32[(STACK_MAX >> 2) - 1].toString(16));\n } // Also test the global address 0 for integrity. This check is not compatible with SAFE_SPLIT_MEMORY though, since that mode already tests all address 0 accesses on its own.\n\n\n if (HEAP32[0] !== 0x63736d65\n /* 'emsc' */\n ) throw 'Runtime error: The application has corrupted its heap memory area (address zero)!';\n }\n\n function abortStackOverflow(allocSize) {\n abort('Stack overflow! Attempted to allocate ' + allocSize + ' bytes on the stack, but stack has only ' + (STACK_MAX - _stackSave() + allocSize) + ' bytes available!');\n }\n\n function abortOnCannotGrowMemory() {\n abort('Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value ' + TOTAL_MEMORY + ', (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ');\n }\n\n if (!Module['reallocBuffer']) Module['reallocBuffer'] = function (size) {\n var ret;\n\n try {\n if (ArrayBuffer.transfer) {\n ret = ArrayBuffer.transfer(buffer, size);\n } else {\n var oldHEAP8 = HEAP8;\n ret = new ArrayBuffer(size);\n var temp = new Int8Array(ret);\n temp.set(oldHEAP8);\n }\n } catch (e) {\n return false;\n }\n\n var success = _emscripten_replace_memory(ret);\n\n if (!success) return false;\n return ret;\n };\n\n function enlargeMemory() {\n // TOTAL_MEMORY is the current size of the actual array, and DYNAMICTOP is the new top.\n assert(HEAP32[DYNAMICTOP_PTR >> 2] > TOTAL_MEMORY); // This function should only ever be called after the ceiling of the dynamic heap has already been bumped to exceed the current total size of the asm.js heap.\n\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\n\n var LIMIT = 2147483648 - PAGE_MULTIPLE; // We can do one page short of 2GB as theoretical maximum.\n\n if (HEAP32[DYNAMICTOP_PTR >> 2] > LIMIT) {\n err('Cannot enlarge memory, asked to go up to ' + HEAP32[DYNAMICTOP_PTR >> 2] + ' bytes, but the limit is ' + LIMIT + ' bytes!');\n return false;\n }\n\n var OLD_TOTAL_MEMORY = TOTAL_MEMORY;\n TOTAL_MEMORY = Math.max(TOTAL_MEMORY, MIN_TOTAL_MEMORY); // So the loop below will not be infinite, and minimum asm.js memory size is 16MB.\n\n while (TOTAL_MEMORY < HEAP32[DYNAMICTOP_PTR >> 2]) {\n // Keep incrementing the heap size as long as it's less than what is requested.\n if (TOTAL_MEMORY <= 536870912) {\n TOTAL_MEMORY = alignUp(2 * TOTAL_MEMORY, PAGE_MULTIPLE); // Simple heuristic: double until 1GB...\n } else {\n // ..., but after that, add smaller increments towards 2GB, which we cannot reach\n TOTAL_MEMORY = Math.min(alignUp((3 * TOTAL_MEMORY + 2147483648) / 4, PAGE_MULTIPLE), LIMIT);\n\n if (TOTAL_MEMORY === OLD_TOTAL_MEMORY) {\n warnOnce('Cannot ask for more memory since we reached the practical limit in browsers (which is just below 2GB), so the request would have failed. Requesting only ' + TOTAL_MEMORY);\n }\n }\n }\n\n var start = Date.now();\n var replacement = Module['reallocBuffer'](TOTAL_MEMORY);\n\n if (!replacement || replacement.byteLength != TOTAL_MEMORY) {\n err('Failed to grow the heap from ' + OLD_TOTAL_MEMORY + ' bytes to ' + TOTAL_MEMORY + ' bytes, not enough memory!');\n\n if (replacement) {\n err('Expected to get back a buffer of size ' + TOTAL_MEMORY + ' bytes, but instead got back a buffer of size ' + replacement.byteLength);\n } // restore the state to before this call, we failed\n\n\n TOTAL_MEMORY = OLD_TOTAL_MEMORY;\n return false;\n } // everything worked\n\n\n updateGlobalBuffer(replacement);\n updateGlobalBufferViews();\n\n if (!Module[\"usingWasm\"]) {\n err('Warning: Enlarging memory arrays, this is not fast! ' + [OLD_TOTAL_MEMORY, TOTAL_MEMORY]);\n }\n\n return true;\n }\n\n var byteLength;\n\n try {\n byteLength = Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype, 'byteLength').get);\n byteLength(new ArrayBuffer(4)); // can fail on older ie\n } catch (e) {\n // can fail on older node/v8\n byteLength = function byteLength(buffer) {\n return buffer.byteLength;\n };\n }\n\n var TOTAL_STACK = Module['TOTAL_STACK'] || 5242880;\n var TOTAL_MEMORY = Module['TOTAL_MEMORY'] || 16777216;\n if (TOTAL_MEMORY < TOTAL_STACK) err('TOTAL_MEMORY should be larger than TOTAL_STACK, was ' + TOTAL_MEMORY + '! (TOTAL_STACK=' + TOTAL_STACK + ')'); // Initialize the runtime's memory\n // check for full engine support (use string 'subarray' to avoid closure compiler confusion)\n\n assert(typeof Int32Array !== 'undefined' && typeof Float64Array !== 'undefined' && Int32Array.prototype.subarray !== undefined && Int32Array.prototype.set !== undefined, 'JS engine does not provide full typed array support'); // Use a provided buffer, if there is one, or else allocate a new one\n\n if (Module['buffer']) {\n buffer = Module['buffer'];\n assert(buffer.byteLength === TOTAL_MEMORY, 'provided buffer should be ' + TOTAL_MEMORY + ' bytes, but it is ' + buffer.byteLength);\n } else {\n // Use a WebAssembly memory where available\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Memory === 'function') {\n assert(TOTAL_MEMORY % WASM_PAGE_SIZE === 0);\n Module['wasmMemory'] = new WebAssembly.Memory({\n 'initial': TOTAL_MEMORY / WASM_PAGE_SIZE\n });\n buffer = Module['wasmMemory'].buffer;\n } else {\n buffer = new ArrayBuffer(TOTAL_MEMORY);\n }\n\n assert(buffer.byteLength === TOTAL_MEMORY);\n Module['buffer'] = buffer;\n }\n\n updateGlobalBufferViews();\n\n function getTotalMemory() {\n return TOTAL_MEMORY;\n } // Endianness check (note: assumes compiler arch was little-endian)\n\n\n HEAP32[0] = 0x63736d65;\n /* 'emsc' */\n\n HEAP16[1] = 0x6373;\n if (HEAPU8[2] !== 0x73 || HEAPU8[3] !== 0x63) throw 'Runtime error: expected the system to be little-endian!';\n\n function callRuntimeCallbacks(callbacks) {\n while (callbacks.length > 0) {\n var callback = callbacks.shift();\n\n if (typeof callback == 'function') {\n callback();\n continue;\n }\n\n var func = callback.func;\n\n if (typeof func === 'number') {\n if (callback.arg === undefined) {\n Module['dynCall_v'](func);\n } else {\n Module['dynCall_vi'](func, callback.arg);\n }\n } else {\n func(callback.arg === undefined ? null : callback.arg);\n }\n }\n }\n\n var __ATPRERUN__ = []; // functions called before the runtime is initialized\n\n var __ATINIT__ = []; // functions called during startup\n\n var __ATMAIN__ = []; // functions called when main() is to be run\n\n var __ATEXIT__ = []; // functions called during shutdown\n\n var __ATPOSTRUN__ = []; // functions called after the main() is called\n\n var runtimeInitialized = false;\n var runtimeExited = false;\n\n function preRun() {\n // compatibility - merge in anything from Module['preRun'] at this time\n if (Module['preRun']) {\n if (typeof Module['preRun'] == 'function') Module['preRun'] = [Module['preRun']];\n\n while (Module['preRun'].length) {\n addOnPreRun(Module['preRun'].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPRERUN__);\n }\n\n function ensureInitRuntime() {\n checkStackCookie();\n if (runtimeInitialized) return;\n runtimeInitialized = true;\n callRuntimeCallbacks(__ATINIT__);\n }\n\n function preMain() {\n checkStackCookie();\n callRuntimeCallbacks(__ATMAIN__);\n }\n\n function exitRuntime() {\n checkStackCookie();\n callRuntimeCallbacks(__ATEXIT__);\n runtimeExited = true;\n }\n\n function postRun() {\n checkStackCookie(); // compatibility - merge in anything from Module['postRun'] at this time\n\n if (Module['postRun']) {\n if (typeof Module['postRun'] == 'function') Module['postRun'] = [Module['postRun']];\n\n while (Module['postRun'].length) {\n addOnPostRun(Module['postRun'].shift());\n }\n }\n\n callRuntimeCallbacks(__ATPOSTRUN__);\n }\n\n function addOnPreRun(cb) {\n __ATPRERUN__.unshift(cb);\n }\n\n function addOnInit(cb) {\n __ATINIT__.unshift(cb);\n }\n\n function addOnPreMain(cb) {\n __ATMAIN__.unshift(cb);\n }\n\n function addOnExit(cb) {\n __ATEXIT__.unshift(cb);\n }\n\n function addOnPostRun(cb) {\n __ATPOSTRUN__.unshift(cb);\n } // Deprecated: This function should not be called because it is unsafe and does not provide\n // a maximum length limit of how many bytes it is allowed to write. Prefer calling the\n // function stringToUTF8Array() instead, which takes in a maximum length that can be used\n // to be secure from out of bounds writes.\n\n /** @deprecated */\n\n\n function writeStringToMemory(string, buffer, dontAddNull) {\n warnOnce('writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!');\n var\n /** @type {number} */\n lastChar,\n /** @type {number} */\n end;\n\n if (dontAddNull) {\n // stringToUTF8Array always appends null. If we don't want to do that, remember the\n // character that existed at the location where the null will be placed, and restore\n // that after the write (below).\n end = buffer + lengthBytesUTF8(string);\n lastChar = HEAP8[end];\n }\n\n stringToUTF8(string, buffer, Infinity);\n if (dontAddNull) HEAP8[end] = lastChar; // Restore the value under the null character.\n }\n\n function writeArrayToMemory(array, buffer) {\n assert(array.length >= 0, 'writeArrayToMemory array must have a length (should be an array or typed array)');\n HEAP8.set(array, buffer);\n }\n\n function writeAsciiToMemory(str, buffer, dontAddNull) {\n for (var i = 0; i < str.length; ++i) {\n assert(str.charCodeAt(i) === str.charCodeAt(i) & 0xff);\n HEAP8[buffer++ >> 0] = str.charCodeAt(i);\n } // Null-terminate the pointer to the HEAP.\n\n\n if (!dontAddNull) HEAP8[buffer >> 0] = 0;\n }\n\n function unSign(value, bits, ignore) {\n if (value >= 0) {\n return value;\n }\n\n return bits <= 32 ? 2 * Math.abs(1 << bits - 1) + value // Need some trickery, since if bits == 32, we are right at the limit of the bits JS uses in bitshifts\n : Math.pow(2, bits) + value;\n }\n\n function reSign(value, bits, ignore) {\n if (value <= 0) {\n return value;\n }\n\n var half = bits <= 32 ? Math.abs(1 << bits - 1) // abs is needed if bits == 32\n : Math.pow(2, bits - 1);\n\n if (value >= half && (bits <= 32 || value > half)) {\n // for huge values, we can hit the precision limit and always get true here. so don't do that\n // but, in general there is no perfect solution here. With 64-bit ints, we get rounding and errors\n // TODO: In i64 mode 1, resign the two parts separately and safely\n value = -2 * half + value; // Cannot bitshift half, as it may be at the limit of the bits JS uses in bitshifts\n }\n\n return value;\n }\n\n assert(Math['imul'] && Math['fround'] && Math['clz32'] && Math['trunc'], 'this is a legacy browser, build with LEGACY_VM_SUPPORT');\n var Math_abs = Math.abs;\n var Math_cos = Math.cos;\n var Math_sin = Math.sin;\n var Math_tan = Math.tan;\n var Math_acos = Math.acos;\n var Math_asin = Math.asin;\n var Math_atan = Math.atan;\n var Math_atan2 = Math.atan2;\n var Math_exp = Math.exp;\n var Math_log = Math.log;\n var Math_sqrt = Math.sqrt;\n var Math_ceil = Math.ceil;\n var Math_floor = Math.floor;\n var Math_pow = Math.pow;\n var Math_imul = Math.imul;\n var Math_fround = Math.fround;\n var Math_round = Math.round;\n var Math_min = Math.min;\n var Math_max = Math.max;\n var Math_clz32 = Math.clz32;\n var Math_trunc = Math.trunc; // A counter of dependencies for calling run(). If we need to\n // do asynchronous work before running, increment this and\n // decrement it. Incrementing must happen in a place like\n // PRE_RUN_ADDITIONS (used by emcc to add file preloading).\n // Note that you can add dependencies in preRun, even though\n // it happens right before run - run will be postponed until\n // the dependencies are met.\n\n var runDependencies = 0;\n var runDependencyWatcher = null;\n var dependenciesFulfilled = null; // overridden to take different actions when all run dependencies are fulfilled\n\n var runDependencyTracking = {};\n\n function getUniqueRunDependency(id) {\n var orig = id;\n\n while (1) {\n if (!runDependencyTracking[id]) return id;\n id = orig + Math.random();\n }\n\n return id;\n }\n\n function addRunDependency(id) {\n runDependencies++;\n\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n\n if (id) {\n assert(!runDependencyTracking[id]);\n runDependencyTracking[id] = 1;\n\n if (runDependencyWatcher === null && typeof setInterval !== 'undefined') {\n // Check for missing dependencies every few seconds\n runDependencyWatcher = setInterval(function () {\n if (ABORT) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n return;\n }\n\n var shown = false;\n\n for (var dep in runDependencyTracking) {\n if (!shown) {\n shown = true;\n err('still waiting on run dependencies:');\n }\n\n err('dependency: ' + dep);\n }\n\n if (shown) {\n err('(end of list)');\n }\n }, 10000);\n }\n } else {\n err('warning: run dependency added without ID');\n }\n }\n\n function removeRunDependency(id) {\n runDependencies--;\n\n if (Module['monitorRunDependencies']) {\n Module['monitorRunDependencies'](runDependencies);\n }\n\n if (id) {\n assert(runDependencyTracking[id]);\n delete runDependencyTracking[id];\n } else {\n err('warning: run dependency removed without ID');\n }\n\n if (runDependencies == 0) {\n if (runDependencyWatcher !== null) {\n clearInterval(runDependencyWatcher);\n runDependencyWatcher = null;\n }\n\n if (dependenciesFulfilled) {\n var callback = dependenciesFulfilled;\n dependenciesFulfilled = null;\n callback(); // can add another dependenciesFulfilled\n }\n }\n }\n\n Module[\"preloadedImages\"] = {}; // maps url to image data\n\n Module[\"preloadedAudios\"] = {}; // maps url to audio data\n\n var memoryInitializer = null;\n var\n /* show errors on likely calls to FS when it was not included */\n FS = {\n error: function error() {\n abort('Filesystem support (FS) was not included. The problem is that you are using files from JS, but files were not used from C/C++, so filesystem support was not auto-included. You can force-include filesystem support with -s FORCE_FILESYSTEM=1');\n },\n init: function init() {\n FS.error();\n },\n createDataFile: function createDataFile() {\n FS.error();\n },\n createPreloadedFile: function createPreloadedFile() {\n FS.error();\n },\n createLazyFile: function createLazyFile() {\n FS.error();\n },\n open: function open() {\n FS.error();\n },\n mkdev: function mkdev() {\n FS.error();\n },\n registerDevice: function registerDevice() {\n FS.error();\n },\n analyzePath: function analyzePath() {\n FS.error();\n },\n loadFilesFromDB: function loadFilesFromDB() {\n FS.error();\n },\n ErrnoError: function ErrnoError() {\n FS.error();\n }\n };\n Module['FS_createDataFile'] = FS.createDataFile;\n Module['FS_createPreloadedFile'] = FS.createPreloadedFile; // Prefix of data URIs emitted by SINGLE_FILE and related options.\n\n var dataURIPrefix = 'data:application/octet-stream;base64,'; // Indicates whether filename is a base64 data URI.\n\n function isDataURI(filename) {\n return String.prototype.startsWith ? filename.startsWith(dataURIPrefix) : filename.indexOf(dataURIPrefix) === 0;\n }\n\n function integrateWasmJS() {\n // wasm.js has several methods for creating the compiled code module here:\n // * 'native-wasm' : use native WebAssembly support in the browser\n // * 'interpret-s-expr': load s-expression code from a .wast and interpret\n // * 'interpret-binary': load binary wasm and interpret\n // * 'interpret-asm2wasm': load asm.js code, translate to wasm, and interpret\n // * 'asmjs': no wasm, just load the asm.js code and use that (good for testing)\n // The method is set at compile time (BINARYEN_METHOD)\n // The method can be a comma-separated list, in which case, we will try the\n // options one by one. Some of them can fail gracefully, and then we can try\n // the next.\n // inputs\n var method = 'native-wasm';\n var wasmTextFile = '';\n var wasmBinaryFile = 'data:application/octet-stream;base64,AGFzbQEAAAABdRJgA39/fwBgA39/fwF/YAJ/fwBgAX8Bf2AAAX9gAX8AYAJ/fwF/YAR/f39/AX9gBH9/f38AYAAAYAV/f39/fwF/YAd/f39/f39/AGADfn9/AX9gAn5/AX9gBX9/f39/AGAGf3x/f39/AX9gAXwBfmACfH8BfAKLBBwDZW52Bm1lbW9yeQIAgAIDZW52BXRhYmxlAXAAEgNlbnYJdGFibGVCYXNlA38AA2Vudg5EWU5BTUlDVE9QX1BUUgN/AANlbnYIU1RBQ0tUT1ADfwADZW52CVNUQUNLX01BWAN/AANlbnYNZW5sYXJnZU1lbW9yeQAEA2Vudg5nZXRUb3RhbE1lbW9yeQAEA2VudhdhYm9ydE9uQ2Fubm90R3Jvd01lbW9yeQAEA2VudhJhYm9ydFN0YWNrT3ZlcmZsb3cABQNlbnYLbnVsbEZ1bmNfaWkABQNlbnYNbnVsbEZ1bmNfaWlpaQAFA2VudgxudWxsRnVuY192aWkABQNlbnYNbnVsbEZ1bmNfdmlpaQAFA2Vudglqc0NhbGxfaWkABgNlbnYLanNDYWxsX2lpaWkABwNlbnYKanNDYWxsX3ZpaQAAA2Vudgtqc0NhbGxfdmlpaQAIA2VudgdfX19sb2NrAAUDZW52C19fX3NldEVyck5vAAUDZW52DV9fX3N5c2NhbGwxNDAABgNlbnYNX19fc3lzY2FsbDE0NgAGA2VudgxfX19zeXNjYWxsNTQABgNlbnYLX19fc3lzY2FsbDYABgNlbnYJX19fdW5sb2NrAAUDZW52Bl9hYm9ydAAJA2VudhZfZW1zY3JpcHRlbl9tZW1jcHlfYmlnAAEDZW52BV9leGl0AAUDVlUDAwQFAgIFBAUECgMFAQIBBgMDAwsDBQMBAQMEAwEGAwEKAwUAAwAMDQ0DAQ4GDxAREQEEBAYGBgEGAQMHBgQJAwMBBgkDAQEDBgMHAQACCAADAQIABh8GfwEjAQt/ASMCC38BIwMLfwFBAAt/AUEAC38BQQALB9MCGRBfX2dyb3dXYXNtTWVtb3J5ABYRX19fZXJybm9fbG9jYXRpb24AMQtfZGVjb21wcmVzcwAgB19mZmx1c2gAVgdfZmluaXNoACEFX2ZyZWUALA9fbGx2bV9ic3dhcF9pMzIAWwdfbWFsbG9jACsHX21lbWNweQBcB19t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CwsgQCAEQXhqIgI2AgAgAEE0aiIEKAIAQQh0IDogAnZB/wFxciECIAQgAjYCACACQQBIBH9BfCE/ICAhQiAPIUMgLyENIDEhRCAfIUUgMiFGIBIhRyAXIUggIiFJIA4hSiAKIUsgByFMIAUhTSABIU4gECFPIDQhUCA3IVEgFCFSIBMhUyAbIVQgFSEhIDAhVSAzIVYgCyFXIBEhWCAZIVkgFiFaIC4hWyA1IVwgGiFdIB0hXiAjIV8gJCFgIBwhYSAlIWIgJiFjICchZCAoIWUgKSE9ICohPiArITggDCE7IAghOSAJITwgBiEtIAMhGCAeIWZBjgQFIAIgACgCJEGgjQZsQQpySgR/QXwhPyAgIUIgDyFDIC8hDSAxIUQgHyFFIDIhRiASIUcgFyFIICIhSSAOIUogCiFLIAchTCAFIU0gASFOIBAhTyA0IVAgNyFRIBQhUiATIVMgGyFUIBUhISAwIVUgMyFWIAshVyARIVggGSFZIBYhWiAuIVsgNSFcIBohXSAdIV4gIyFfICQhYCAcIWEgJSFiICYhYyAnIWQgKCFlICkhPSAqIT4gKyE4IAwhOyAIITkgCSE8IAYhLSADIRggHiFmQY4EBSALIbEGIBEhsgYgGSGzBiAWIbQGIC4htQYgNSG2BiAaIbcGIB0huAYgIyG5BiAkIboGIBwhuwYgJSG8BiAmIb0GICchvgYgKCG/BiApIcAGICohwQYgKyHCBiAMIcMGIAghxAYgCSHFBiAGIcYGIAMhxwYgGyHIBiAQIckGIBMhygYgFCHLBiA3IcwGIC8hzQYgEiHOBiAXIc8GIDAh0AYgMSHRBiAiIdIGIDIh0wYgMyHUBiA0IdUGIB4h1gYgHyHXBiAgIdgGIA8h2QYgDiHaBiAKIdsGIAch3AYgBSHdBiABId4GQbkBCwshAgsCfwJAA0ACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkACQAJAAkAgAkG5AWsO1gIAARAQEBAQEBAQEBAQAhAQEBAQEBAQEBAQEBAQEBADEBAQEBAQEAQQEBAQEBAQEAUQEBAQEBAQEBAQEBAQEBAQEBAQEBAGEBAQEBAQEBAQBxAQEBAQEBAIEBAQEBAQEBAQEBAQEBAQEBAQEBAQCRAQEBAQEBAQEBAKEBAQEBAQEBAQ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ByD/BiG5ByCAByG6ByCBByG7ByCCByG8ByCDByG9ByCEByG+ByCFByG/ByCGByHAByCHByHBByCIByHCByCJByHDByCKByHEByCLByHFByCMBwshxgcLCyCYByHpAiCZB0EBaiFwIJoHIXsgmwchfCCcByF9IJ0HIX4gngchfyCfByGAASCgByGBASChByGCASCiByGDASCjByGEASCkByGFASClByGGASCmByGHASCnByGIASCoByGJASCpByGKASCqByGLASCrByGMASCsByGNASCtByGOASCuByGPASCvByGQASCwByGRASCxByGSASCyByHqAiCzByGTASC0ByGUASC1ByGVASC2ByGWASC3ByGXASC4ByGYASC5ByGZASC6ByGaASC7ByGbASC8ByGcASC9ByGdASC+ByGeASC/ByGfASDAByGgASDBByGhASDCByGiASDDByGjASDEByGkASDFByGlASDGByGmAUHDASECDAELCyAAQegYaiIFQQA2AgBBACEDQQAhAQNAIABB7BhqIANqLAAABEAgAEH8GmogAWogAzoAACAFIAUoAgBBAWoiATYCAAsgA0EBaiIDQYACRw0ACyABBEAgAUECaiGrASDpAiGsASBwIa0BIHshrgEgfCGvASB9IbABIH4hsQEgfyGyASCAASGzASCBASG0ASCCASG1ASCDASG2ASCEASG3ASCFASG4ASCGASG5ASCHASG6ASCIASG7ASCJASG8ASCKASG9ASCLASG+ASCMASG/ASCNASHAASCOASHBASCPASHCASCQASHDASCRASHEASCSASHFASCTASGNByCUASHGASCVASHHASCWASHIASCXASHJASCYASHKASCZASHLASCaASHMASCbASHNASCcASHOASCdASHPASCeASHQASCfASHRASCgASHSASChASHTASCiASHUASCjASHVASCkASHWASClASHXASCmASHYAUHXASECBUF8IT8goAEhQiChASFDIJUBIQ0gmQEhRCCfASFFIJsBIUYglgEhRyCXASFIIJoBIUkgogEhSiCjASFLIKQBIUwgpQEhTSCmASFOIJIBIU8gnQEhUCCUASFRIJMBIVIg6gIhUyDpAiFUIHAhISCYASFVIJwBIVYgeyFXIHwhWCB9IVkgfiFaIH8hWyCAASFcIIEBIV0gggEhXiCDASFfIIQBIWAghQEhYSCGASFiIIcBIWMgiAEhZCCJASFlIIoBIT0giwEhPiCMASE4II0BITsgjgEhOSCPASE8IJABIS0gkQEhGCCeASFmQY4EIQILDAAACwALIKcBJAUgAAsL0AoBKn8CfwJAIAQgBUoiMEUEQCAGQQBMBEAgAUIANwIAIAFCADcCCCABQgA3AhAgAUIANwIYIAFCADcCICABQgA3AiggAUIANwIwIAFCADcCOCABQUBrQgA3AgAgAUIANwJIIAFCADcCUCABQQA2AlgMAgsgBCEJA0BBACEHA0AgCSADIAdqLQAARgRAIAIgCEECdGogBzYCACAIQQFqIQgLIAdBAWoiByAGRw0ACyAJQQFqIQcgCSAFSARAIAchCQwBCwsLIAFCADcCACABQgA3AgggAUIANwIQIAFCADcCGCABQgA3AiAgAUIANwIoIAFCADcCMCABQgA3AjggAUFAa0IANwIAIAFCADcCSCABQgA3AlAgAUEANgJYIAZBAEwNAEEAIQIDQCABIAMgAmotAABBAWpBAnRqIgggCCgCAEEBajYCACACQQFqIgIgBkcNAAsgAUEIaiIKIQMgAUEMaiILIQYgAUEQaiIMIQggAUEUaiINIQkgAUEYaiIOIQcgAUEcaiIPIR8gAUEgaiIQISAgAUEkaiIRISEgAUEoaiISISIgAUEsaiITISMgAUEwaiIUISQgAUE0aiIVISUgAUE4aiIWISYgAUE8aiIXIScgAUFAayIYISggAUHEAGoiGSEpIAFByABqIhohKiABQcwAaiIbISsgAUHQAGoiHCEsIAFB1ABqIh0hLSABQdgAaiIeIS4gAUEEaiICIS8gCigCACEKIAsoAgAhCyAMKAIAIQwgDSgCACENIA4oAgAhDiAPKAIAIQ8gECgCACEQIBEoAgAhESASKAIAIRIgEygCACETIBQoAgAhFCAVKAIAIRUgFigCACEWIBcoAgAhFyAYKAIAIRggGSgCACEZIBooAgAhGiAbKAIAIRsgHCgCACEcIB0oAgAhHSAeKAIAIR4gAigCAAwBCyABQQhqIQMgAUEMaiEGIAFBEGohCCABQRRqIQkgAUEYaiEHIAFBHGohHyABQSBqISAgAUEkaiEhIAFBKGohIiABQSxqISMgAUEwaiEkIAFBNGohJSABQThqISYgAUE8aiEnIAFB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ASgCEDYCECAAIAEoAhQ2AhQgACABKAIYNgIYIAAgASgCHDYCHCAAIAEoAiA2AiAgACABKAIkNgIkIAAgASgCKDYCKCAAIAEoAiw2AiwgACABKAIwNgIwIAAgASgCNDYCNCAAIAEoAjg2AjggACABKAI8NgI8IABBQGshACABQUBrIQEMAQsLA0AgACACSARAIAAgASgCADYCACAAQQRqIQAgAUEEaiEBDAELCwUgA0EEayECA0AgACACSARAIAAgASwAADoAACAAIAEsAAE6AAEgACABLAACOgACIAAgASwAAzoAAyAAQQRqIQAgAUEEaiEBDAELCwsDQCAAIANIBEAgACABLAAAOgAAIABBAWohACABQQFqIQEMAQsLIAQLmAIBBH8gACACaiEEIAFB/wFxIQEgAkHDAE4EQANAIABBA3EEQCAAIAE6AAAgAEEBaiEADAELCyAEQXxxIgVBQGohBiABIAFBCHRyIAFBEHRyIAFBGHRyIQMDQCAAIAZMBEAgACADNgIAIAAgAzYCBCAAIAM2AgggACADNgIMIAAgAzYCECAAIAM2AhQgACADNgIYIAAgAzYCHCAAIAM2AiAgACADNgIkIAAgAzYCKCAAIAM2AiwgACADNgIwIAAgAzYCNCAAIAM2AjggACADNgI8IABBQGshAAwBCwsDQCAAIAVIBEAgACADNgIAIABBBGohAAwBCwsLA0AgACAESARAIAAgAToAACAAQQFqIQAMAQsLIAQgAmsLVQECfyAAQQBKIwQoAgAiASAAaiIAIAFIcSAAQQBIcgRAEAIaQQwQDUF/DwsjBCAANgIAEAEhAiAAIAJKBEAQAEUEQCMEIAE2AgBBDBANQX8PCwsgAQsMACABIABBA3ERAwALCABBACAAEAgLEwAgASACIAMgAEEHcUEEahEBAAsMAEEAIAAgASACEAkLEQAgASACIABBA3FBDGoRAgALCgBBACAAIAEQCgsTACABIAIgAyAAQQFxQRBqEQAACwwAQQAgACABIAIQCwsIAEEAEARBAAsIAEEBEAVBAAsGAEECEAYLBgBBAxAHCwuwNxwAQYQIC5QYtx3BBG47ggnZJkMN3HYEE2trxReyTYYaBVBHHrjtCCYP8Mki1taKL2HLSytkmww104bNMQqgjjy9vU84cNsRTMfG0Ege4JNFqf1SQaytFV8bsNRb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bGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAAAAAAFQZAAAFAEHgMgsBAgBB+DILCgIAAAADAAAALCgAQZAzCwECAEGfMwsF//////8AQdAzCwEFAEHcMwsBAgBB9DMLDgQAAAADAAAA2CEAAAAEAEGMNAsBAQBBmzQLBQr/////AEHMNAsC0BkAQYw2CwL8JwBBxDYLiA0KCmJ6aXAyL2xpYmJ6aXAyOiBpbnRlcm5hbCBlcnJvciBudW1iZXIgJWQuClRoaXMgaXMgYSBidWcgaW4gYnppcDIvbGliYnppcDIsICVzLgpQbGVhc2UgcmVwb3J0IGl0IHRvIG1lIGF0OiBqc2V3YXJkQGJ6aXAub3JnLiAgSWYgdGhpcyBoYXBwZW5lZAp3aGVuIHlvdSB3ZXJlIHVzaW5nIHNvbWUgcHJvZ3JhbSB3aGljaCB1c2VzIGxpYmJ6aXAyIGFzIGEKY29tcG9uZW50LCB5b3Ugc2hvdWxkIGFsc28gcmVwb3J0IHRoaXMgYnVnIHRvIHRoZSBhdXRob3IocykKb2YgdGhhdCBwcm9ncmFtLiAgUGxlYXNlIG1ha2UgYW4gZWZmb3J0IHRvIHJlcG9ydCB0aGlzIGJ1ZzsKdGltZWx5IGFuZCBhY2N1cmF0ZSBidWcgcmVwb3J0cyBldmVudHVhbGx5IGxlYWQgdG8gaGlnaGVyCnF1YWxpdHkgc29mdHdhcmUuICBUaGFua3MuICBKdWxpYW4gU2V3YXJkLCAxMCBEZWNlbWJlciAyMDA3LgoKADEuMC42LCA2LVNlcHQtMjAxMAAKKioqIEEgc3BlY2lhbCBub3RlIGFib3V0IGludGVybmFsIGVycm9yIG51bWJlciAxMDA3ICoqKgoKRXhwZXJpZW5jZSBzdWdnZXN0cyB0aGF0IGEgY29tbW9uIGNhdXNlIG9mIGkuZS4gMTAwNwppcyB1bnJlbGlhYmxlIG1lbW9yeSBvciBvdGhlciBoYXJkd2FyZS4gIFRoZSAxMDA3IGFzc2VydGlvbgpqdXN0IGhhcHBlbnMgdG8gY3Jvc3MtY2hlY2sgdGhlIHJlc3VsdHMgb2YgaHVnZSBudW1iZXJzIG9mCm1lbW9yeSByZWFkcy93cml0ZXMsIGFuZCBzbyBhY3RzICh1bmludGVuZGVkbHkpIGFzIGEgc3RyZXNzCnRlc3Qgb2YgeW91ciBtZW1vcnkgc3lzdGVtLgoKSSBzdWdnZXN0IHRoZSBmb2xsb3dpbmc6IHRyeSBjb21wcmVzc2luZyB0aGUgZmlsZSBhZ2FpbiwKcG9zc2libHkgbW9uaXRvcmluZyBwcm9ncmVzcyBpbiBkZXRhaWwgd2l0aCB0aGUgLXZ2IGZsYWcuCgoqIElmIHRoZSBlcnJvciBjYW5ub3QgYmUgcmVwcm9kdWNlZCwgYW5kL29yIGhhcHBlbnMgYXQgZGlmZmVyZW50CiAgcG9pbnRzIGluIGNvbXByZXNzaW9uLCB5b3UgbWF5IGhhdmUgYSBmbGFreSBtZW1vcnkgc3lzdGVtLgogIFRyeSBhIG1lbW9yeS10ZXN0IHByb2dyYW0uICBJIGhhdmUgdXNlZCBNZW10ZXN0ODYKICAod3d3Lm1lbXRlc3Q4Ni5jb20pLiAgQXQgdGhlIHRpbWUgb2Ygd3JpdGluZyBpdCBpcyBmcmVlIChHUExkKS4KICBNZW10ZXN0ODYgdGVzdHMgbWVtb3J5IG11Y2ggbW9yZSB0aG9yb3VnbHkgdGhhbiB5b3VyIEJJT1NzCiAgcG93ZXItb24gdGVzdCwgYW5kIG1heSBmaW5kIGZhaWx1cmVzIHRoYXQgdGhlIEJJT1MgZG9lc24ndC4KCiogSWYgdGhlIGVycm9yIGNhbiBiZSByZXBlYXRhYmx5IHJlcHJvZHVjZWQsIHRoaXMgaXMgYSBidWcgaW4KICBiemlwMiwgYW5kIEkgd291bGQgdmVyeSBtdWNoIGxpa2UgdG8gaGVhciBhYm91dCBpdC4gIFBsZWFzZQogIGxldCBtZSBrbm93LCBhbmQsIGlkZWFsbHksIHNhdmUgYSBjb3B5IG9mIHRoZSBmaWxlIGNhdXNpbmcgdGhlCiAgcHJvYmxlbSAtLSB3aXRob3V0IHdoaWNoIEkgd2lsbCBiZSB1bmFibGUgdG8gaW52ZXN0aWdhdGUgaXQuCgoAIHsweCUwOHgsIDB4JTA4eH0ACiAgICBjb21iaW5lZCBDUkNzOiBzdG9yZWQgPSAweCUwOHgsIGNvbXB1dGVkID0gMHglMDh4AAogICAgWyVkOiBodWZmK210ZiAAcnQrcmxkAC0rICAgMFgweAAobnVsbCkALTBYKzBYIDBYLTB4KzB4IDB4AGluZgBJTkYAbmFuAE5BTgAuAIQLBG5hbWUB/AprAA1lbmxhcmdlTWVtb3J5AQ5nZXRUb3RhbE1lbW9yeQIXYWJvcnRPbkNhbm5vdEdyb3dNZW1vcnkDEmFib3J0U3RhY2tPdmVyZmxvdwQLbnVsbEZ1bmNfaWkFDW51bGxGdW5jX2lpaWkGDG51bGxGdW5jX3ZpaQcNbnVsbEZ1bmNfdmlpaQgJanNDYWxsX2lpCQtqc0NhbGxfaWlpaQoKanNDYWxsX3ZpaQsLanNDYWxsX3ZpaWkMB19fX2xvY2sNC19fX3NldEVyck5vDg1fX19zeXNjYWxsMTQwDw1fX19zeXNjYWxsMTQ2EAxfX19zeXNjYWxsNTQRC19fX3N5c2NhbGw2EglfX191bmxvY2sTBl9hYm9ydBQWX2Vtc2NyaXB0ZW5fbWVtY3B5X2JpZxUFX2V4aXQWEF9fZ3Jvd1dhc21NZW1vcnkXCnN0YWNrQWxsb2MYCXN0YWNrU2F2ZRkMc3RhY2tSZXN0b3JlGhNlc3RhYmxpc2hTdGFja1NwYWNlGwhzZXRUaHJldxwLc2V0VGVtcFJldDAdC2dldFRlbXBSZXQwHhFfcmVnaXN0ZXJDYWxsYmFjax8GX3N0YXJ0IAtfZGVjb21wcmVzcyEHX2ZpbmlzaCIWX0JaMl9iel9fQXNzZXJ0SF9fZmFpbCMQX2RlZmF1bHRfYnphbGxvYyQPX2RlZmF1bHRfYnpmcmVlJRVfQloyX2J6RGVjb21wcmVzc0luaXQmD19CWjJfaW5kZXhJbnRvRicRX0JaMl9iekRlY29tcHJlc3MoFF9CWjJfYnpEZWNvbXByZXNzRW5kKQ9fQloyX2RlY29tcHJlc3MqGV9CWjJfaGJDcmVhdGVEZWNvZGVUYWJsZXMrB19tYWxsb2MsBV9mcmVlLQ5fX19zdGRpb19jbG9zZS4OX19fc3RkaW9fd3JpdGUvDV9fX3N0ZGlvX3NlZWswDl9fX3N5c2NhbGxfcmV0MRFfX19lcnJub19sb2NhdGlvbjIKX2R1bW15XzU2OTMPX19fc3Rkb3V0X3dyaXRlNAdfc3RyY21wNQhfaXNkaWdpdDYJX3ZmcHJpbnRmNwxfcHJpbnRmX2NvcmU4C19fX2xvY2tmaWxlOQ1fX191bmxvY2tmaWxlOgRfb3V0OwdfZ2V0aW50PAhfcG9wX2FyZz0GX2ZtdF94PgZfZm10X28/Bl9mbXRfdUAJX3N0cmVycm9yQQdfbWVtY2hyQghfcGFkXzY4MEMHX3djdG9tYkQHX2ZtdF9mcEUSX19fRE9VQkxFX0JJVFNfNjgxRgdfZnJleHBsRwZfZnJleHBICF93Y3J0b21iSRNfX19wdGhyZWFkX3NlbGZfNDMwSg1fcHRocmVhZF9zZWxmSw1fX19zdHJlcnJvcl9sTApfX19sY3RyYW5zTQ9fX19sY3RyYW5zX2ltcGxODF9fX21vX2xvb2t1cE8GX3N3YXBjUApfX19md3JpdGV4UQpfX190b3dyaXRlUgdfZndyaXRlUwtfX19vdmVyZmxvd1QLX19fb2ZsX2xvY2tVDV9fX29mbF91bmxvY2tWB19mZmx1c2hXEl9fX2ZmbHVzaF91bmxvY2tlZFgIX2ZwcmludGZZBl9mcHV0Y1oLcnVuUG9zdFNldHNbD19sbHZtX2Jzd2FwX2kzMlwHX21lbWNweV0HX21lbXNldF4FX3NicmtfCmR5bkNhbGxfaWlgC2pzQ2FsbF9paV8wYQxkeW5DYWxsX2lpaWliDWpzQ2FsbF9paWlpXzBjC2R5bkNhbGxfdmlpZAxqc0NhbGxfdmlpXzBlDGR5bkNhbGxfdmlpaWYNanNDYWxsX3ZpaWlfMGcCYjBoAmIxaQJiMmoCYjM=';\n var asmjsCodeFile = '';\n\n if (!isDataURI(wasmTextFile)) {\n wasmTextFile = locateFile(wasmTextFile);\n }\n\n if (!isDataURI(wasmBinaryFile)) {\n wasmBinaryFile = locateFile(wasmBinaryFile);\n }\n\n if (!isDataURI(asmjsCodeFile)) {\n asmjsCodeFile = locateFile(asmjsCodeFile);\n } // utilities\n\n\n var wasmPageSize = 64 * 1024;\n var info = {\n 'global': null,\n 'env': null,\n 'asm2wasm': asm2wasmImports,\n 'parent': Module // Module inside wasm-js.cpp refers to wasm-js.cpp; this allows access to the outside program.\n\n };\n var exports = null;\n\n function mergeMemory(newBuffer) {\n // The wasm instance creates its memory. But static init code might have written to\n // buffer already, including the mem init file, and we must copy it over in a proper merge.\n // TODO: avoid this copy, by avoiding such static init writes\n // TODO: in shorter term, just copy up to the last static init write\n var oldBuffer = Module['buffer'];\n\n if (newBuffer.byteLength < oldBuffer.byteLength) {\n err('the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here');\n }\n\n var oldView = new Int8Array(oldBuffer);\n var newView = new Int8Array(newBuffer);\n newView.set(oldView);\n updateGlobalBuffer(newBuffer);\n updateGlobalBufferViews();\n }\n\n function fixImports(imports) {\n return imports;\n }\n\n function getBinary() {\n try {\n if (Module['wasmBinary']) {\n return new Uint8Array(Module['wasmBinary']);\n }\n\n var binary = tryParseAsDataURI(wasmBinaryFile);\n\n if (binary) {\n return binary;\n }\n\n if (Module['readBinary']) {\n return Module['readBinary'](wasmBinaryFile);\n } else {\n throw \"both async and sync fetching of the wasm failed\";\n }\n } catch (err) {\n abort(err);\n }\n }\n\n function getBinaryPromise() {\n // if we don't have the binary yet, and have the Fetch api, use that\n // in some environments, like Electron's render process, Fetch api may be present, but have a different context than expected, let's only use it on the Web\n if (!Module['wasmBinary'] && (ENVIRONMENT_IS_WEB || ENVIRONMENT_IS_WORKER) && typeof fetch === 'function') {\n return fetch(wasmBinaryFile, {\n credentials: 'same-origin'\n }).then(function (response) {\n if (!response['ok']) {\n throw \"failed to load wasm binary file at '\" + wasmBinaryFile + \"'\";\n }\n\n return response['arrayBuffer']();\n }).catch(function () {\n return getBinary();\n });\n } // Otherwise, getBinary should be able to get it synchronously\n\n\n return new Promise(function (resolve, reject) {\n resolve(getBinary());\n });\n } // do-method functions\n\n\n function doNativeWasm(global, env, providedBuffer) {\n if (typeof WebAssembly !== 'object') {\n // when the method is just native-wasm, our error message can be very specific\n abort('No WebAssembly support found. Build with -s WASM=0 to target JavaScript instead.');\n err('no native wasm support detected');\n return false;\n } // prepare memory import\n\n\n if (!(Module['wasmMemory'] instanceof WebAssembly.Memory)) {\n err('no native wasm Memory in use');\n return false;\n }\n\n env['memory'] = Module['wasmMemory']; // Load the wasm module and create an instance of using native support in the JS engine.\n\n info['global'] = {\n 'NaN': NaN,\n 'Infinity': Infinity\n };\n info['global.Math'] = Math;\n info['env'] = env; // handle a generated wasm instance, receiving its exports and\n // performing other necessary setup\n\n function receiveInstance(instance, module) {\n exports = instance.exports;\n if (exports.memory) mergeMemory(exports.memory);\n Module['asm'] = exports;\n Module[\"usingWasm\"] = true;\n removeRunDependency('wasm-instantiate');\n }\n\n addRunDependency('wasm-instantiate'); // User shell pages can write their own Module.instantiateWasm = function(imports, successCallback) callback\n // to manually instantiate the Wasm module themselves. This allows pages to run the instantiation parallel\n // to any other async startup actions they are performing.\n\n if (Module['instantiateWasm']) {\n try {\n return Module['instantiateWasm'](info, receiveInstance);\n } catch (e) {\n err('Module.instantiateWasm callback failed with error: ' + e);\n return false;\n }\n } // Async compilation can be confusing when an error on the page overwrites Module\n // (for example, if the order of elements is wrong, and the one defining Module is\n // later), so we save Module and check it later.\n\n\n var trueModule = Module;\n\n function receiveInstantiatedSource(output) {\n // 'output' is a WebAssemblyInstantiatedSource object which has both the module and instance.\n // receiveInstance() will swap in the exports (to Module.asm) so they can be called\n assert(Module === trueModule, 'the Module object should not be replaced during async compilation - perhaps the order of HTML elements is wrong?');\n trueModule = null;\n receiveInstance(output['instance'], output['module']);\n }\n\n function instantiateArrayBuffer(receiver) {\n getBinaryPromise().then(function (binary) {\n return WebAssembly.instantiate(binary, info);\n }).then(receiver).catch(function (reason) {\n err('failed to asynchronously prepare wasm: ' + reason);\n abort(reason);\n });\n } // Prefer streaming instantiation if available.\n\n\n if (!Module['wasmBinary'] && typeof WebAssembly.instantiateStreaming === 'function' && !isDataURI(wasmBinaryFile) && typeof fetch === 'function') {\n WebAssembly.instantiateStreaming(fetch(wasmBinaryFile, {\n credentials: 'same-origin'\n }), info).then(receiveInstantiatedSource).catch(function (reason) {\n // We expect the most common failure cause to be a bad MIME type for the binary,\n // in which case falling back to ArrayBuffer instantiation should work.\n err('wasm streaming compile failed: ' + reason);\n err('falling back to ArrayBuffer instantiation');\n instantiateArrayBuffer(receiveInstantiatedSource);\n });\n } else {\n instantiateArrayBuffer(receiveInstantiatedSource);\n }\n\n return {}; // no exports yet; we'll fill them in later\n } // We may have a preloaded value in Module.asm, save it\n\n\n Module['asmPreload'] = Module['asm']; // Memory growth integration code\n\n var asmjsReallocBuffer = Module['reallocBuffer'];\n\n var wasmReallocBuffer = function wasmReallocBuffer(size) {\n var PAGE_MULTIPLE = Module[\"usingWasm\"] ? WASM_PAGE_SIZE : ASMJS_PAGE_SIZE; // In wasm, heap size must be a multiple of 64KB. In asm.js, they need to be multiples of 16MB.\n\n size = alignUp(size, PAGE_MULTIPLE); // round up to wasm page size\n\n var old = Module['buffer'];\n var oldSize = old.byteLength;\n\n if (Module[\"usingWasm\"]) {\n // native wasm support\n try {\n var result = Module['wasmMemory'].grow((size - oldSize) / wasmPageSize); // .grow() takes a delta compared to the previous size\n\n if (result !== (-1 | 0)) {\n // success in native wasm memory growth, get the buffer from the memory\n return Module['buffer'] = Module['wasmMemory'].buffer;\n } else {\n return null;\n }\n } catch (e) {\n console.error('Module.reallocBuffer: Attempted to grow from ' + oldSize + ' bytes to ' + size + ' bytes, but got error: ' + e);\n return null;\n }\n }\n };\n\n Module['reallocBuffer'] = function (size) {\n if (finalMethod === 'asmjs') {\n return asmjsReallocBuffer(size);\n } else {\n return wasmReallocBuffer(size);\n }\n }; // we may try more than one; this is the final one, that worked and we are using\n\n\n var finalMethod = ''; // Provide an \"asm.js function\" for the application, called to \"link\" the asm.js module. We instantiate\n // the wasm module at that time, and it receives imports and provides exports and so forth, the app\n // doesn't need to care that it is wasm or olyfilled wasm or asm.js.\n\n Module['asm'] = function (global, env, providedBuffer) {\n env = fixImports(env); // import table\n\n if (!env['table']) {\n var TABLE_SIZE = Module['wasmTableSize'];\n if (TABLE_SIZE === undefined) TABLE_SIZE = 1024; // works in binaryen interpreter at least\n\n var MAX_TABLE_SIZE = Module['wasmMaxTableSize'];\n\n if (typeof WebAssembly === 'object' && typeof WebAssembly.Table === 'function') {\n if (MAX_TABLE_SIZE !== undefined) {\n env['table'] = new WebAssembly.Table({\n 'initial': TABLE_SIZE,\n 'maximum': MAX_TABLE_SIZE,\n 'element': 'anyfunc'\n });\n } else {\n env['table'] = new WebAssembly.Table({\n 'initial': TABLE_SIZE,\n element: 'anyfunc'\n });\n }\n } else {\n env['table'] = new Array(TABLE_SIZE); // works in binaryen interpreter at least\n }\n\n Module['wasmTable'] = env['table'];\n }\n\n if (!env['memoryBase']) {\n env['memoryBase'] = Module['STATIC_BASE']; // tell the memory segments where to place themselves\n }\n\n if (!env['tableBase']) {\n env['tableBase'] = 0; // table starts at 0 by default, in dynamic linking this will change\n } // try the methods. each should return the exports if it succeeded\n\n\n var exports;\n exports = doNativeWasm(global, env, providedBuffer);\n assert(exports, 'no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods');\n return exports;\n };\n\n var methodHandler = Module['asm']; // note our method handler, as we may modify Module['asm'] later\n }\n\n integrateWasmJS(); // === Body ===\n\n var ASM_CONSTS = [];\n STATIC_BASE = GLOBAL_BASE;\n STATICTOP = STATIC_BASE + 10288;\n /* global initializers */\n\n __ATINIT__.push();\n\n var STATIC_BUMP = 10288;\n Module[\"STATIC_BASE\"] = STATIC_BASE;\n Module[\"STATIC_BUMP\"] = STATIC_BUMP;\n /* no memory initializer */\n\n var tempDoublePtr = STATICTOP;\n STATICTOP += 16;\n assert(tempDoublePtr % 8 == 0);\n\n function copyTempFloat(ptr) {\n // functions, because inlining this code increases code size too much\n HEAP8[tempDoublePtr] = HEAP8[ptr];\n HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];\n HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];\n HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3];\n }\n\n function copyTempDouble(ptr) {\n HEAP8[tempDoublePtr] = HEAP8[ptr];\n HEAP8[tempDoublePtr + 1] = HEAP8[ptr + 1];\n HEAP8[tempDoublePtr + 2] = HEAP8[ptr + 2];\n HEAP8[tempDoublePtr + 3] = HEAP8[ptr + 3];\n HEAP8[tempDoublePtr + 4] = HEAP8[ptr + 4];\n HEAP8[tempDoublePtr + 5] = HEAP8[ptr + 5];\n HEAP8[tempDoublePtr + 6] = HEAP8[ptr + 6];\n HEAP8[tempDoublePtr + 7] = HEAP8[ptr + 7];\n } // {{PRE_LIBRARY}}\n\n\n function ___lock() {}\n\n var SYSCALLS = {\n varargs: 0,\n get: function get(varargs) {\n SYSCALLS.varargs += 4;\n var ret = HEAP32[SYSCALLS.varargs - 4 >> 2];\n return ret;\n },\n getStr: function getStr() {\n var ret = Pointer_stringify(SYSCALLS.get());\n return ret;\n },\n get64: function get64() {\n var low = SYSCALLS.get(),\n high = SYSCALLS.get();\n if (low >= 0) assert(high === 0);else assert(high === -1);\n return low;\n },\n getZero: function getZero() {\n assert(SYSCALLS.get() === 0);\n }\n };\n\n function ___syscall140(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n // llseek\n var stream = SYSCALLS.getStreamFromFD(),\n offset_high = SYSCALLS.get(),\n offset_low = SYSCALLS.get(),\n result = SYSCALLS.get(),\n whence = SYSCALLS.get(); // NOTE: offset_high is unused - Emscripten's off_t is 32-bit\n\n var offset = offset_low;\n FS.llseek(stream, offset, whence);\n HEAP32[result >> 2] = stream.position;\n if (stream.getdents && offset === 0 && whence === 0) stream.getdents = null; // reset readdir state\n\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function flush_NO_FILESYSTEM() {\n // flush anything remaining in the buffers during shutdown\n var fflush = Module[\"_fflush\"];\n if (fflush) fflush(0);\n var printChar = ___syscall146.printChar;\n if (!printChar) return;\n var buffers = ___syscall146.buffers;\n if (buffers[1].length) printChar(1, 10);\n if (buffers[2].length) printChar(2, 10);\n }\n\n function ___syscall146(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n // writev\n // hack to support printf in NO_FILESYSTEM\n var stream = SYSCALLS.get(),\n iov = SYSCALLS.get(),\n iovcnt = SYSCALLS.get();\n var ret = 0;\n\n if (!___syscall146.buffers) {\n ___syscall146.buffers = [null, [], []]; // 1 => stdout, 2 => stderr\n\n ___syscall146.printChar = function (stream, curr) {\n var buffer = ___syscall146.buffers[stream];\n assert(buffer);\n\n if (curr === 0 || curr === 10) {\n (stream === 1 ? out : err)(UTF8ArrayToString(buffer, 0));\n buffer.length = 0;\n } else {\n buffer.push(curr);\n }\n };\n }\n\n for (var i = 0; i < iovcnt; i++) {\n var ptr = HEAP32[iov + i * 8 >> 2];\n var len = HEAP32[iov + (i * 8 + 4) >> 2];\n\n for (var j = 0; j < len; j++) {\n ___syscall146.printChar(stream, HEAPU8[ptr + j]);\n }\n\n ret += len;\n }\n\n return ret;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall54(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n // ioctl\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___syscall6(which, varargs) {\n SYSCALLS.varargs = varargs;\n\n try {\n // close\n var stream = SYSCALLS.getStreamFromFD();\n FS.close(stream);\n return 0;\n } catch (e) {\n if (typeof FS === 'undefined' || !(e instanceof FS.ErrnoError)) abort(e);\n return -e.errno;\n }\n }\n\n function ___unlock() {}\n\n function _abort() {\n Module['abort']();\n }\n\n function __exit(status) {\n // void _exit(int status);\n // http://pubs.opengroup.org/onlinepubs/000095399/functions/exit.html\n exit(status);\n }\n\n function _exit(status) {\n __exit(status);\n }\n\n function _emscripten_memcpy_big(dest, src, num) {\n HEAPU8.set(HEAPU8.subarray(src, src + num), dest);\n return dest;\n }\n\n function ___setErrNo(value) {\n if (Module['___errno_location']) HEAP32[Module['___errno_location']() >> 2] = value;else err('failed to set errno from JS');\n return value;\n }\n\n __ATEXIT__.push(flush_NO_FILESYSTEM);\n\n ;\n DYNAMICTOP_PTR = staticAlloc(4);\n STACK_BASE = STACKTOP = alignMemory(STATICTOP);\n STACK_MAX = STACK_BASE + TOTAL_STACK;\n DYNAMIC_BASE = alignMemory(STACK_MAX);\n HEAP32[DYNAMICTOP_PTR >> 2] = DYNAMIC_BASE;\n staticSealed = true; // seal the static portion of memory\n\n assert(DYNAMIC_BASE < TOTAL_MEMORY, \"TOTAL_MEMORY not big enough for stack\");\n var ASSERTIONS = true;\n /** @type {function(string, boolean=, number=)} */\n\n function intArrayFromString(stringy, dontAddNull, length) {\n var len = length > 0 ? length : lengthBytesUTF8(stringy) + 1;\n var u8array = new Array(len);\n var numBytesWritten = stringToUTF8Array(stringy, u8array, 0, u8array.length);\n if (dontAddNull) u8array.length = numBytesWritten;\n return u8array;\n }\n\n function intArrayToString(array) {\n var ret = [];\n\n for (var i = 0; i < array.length; i++) {\n var chr = array[i];\n\n if (chr > 0xFF) {\n if (ASSERTIONS) {\n assert(false, 'Character code ' + chr + ' (' + String.fromCharCode(chr) + ') at offset ' + i + ' not in 0x00-0xFF.');\n }\n\n chr &= 0xFF;\n }\n\n ret.push(String.fromCharCode(chr));\n }\n\n return ret.join('');\n } // Copied from https://github.com/strophe/strophejs/blob/e06d027/src/polyfills.js#L149\n // This code was written by Tyler Akins and has been placed in the\n // public domain. It would be nice if you left this header intact.\n // Base64 code from Tyler Akins -- http://rumkin.com\n\n /**\n * Decodes a base64 string.\n * @param {String} input The string to decode.\n */\n\n\n var decodeBase64 = typeof atob === 'function' ? atob : function (input) {\n var keyStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var output = '';\n var chr1, chr2, chr3;\n var enc1, enc2, enc3, enc4;\n var i = 0; // remove all characters that are not A-Z, a-z, 0-9, +, /, or =\n\n input = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, '');\n\n do {\n enc1 = keyStr.indexOf(input.charAt(i++));\n enc2 = keyStr.indexOf(input.charAt(i++));\n enc3 = keyStr.indexOf(input.charAt(i++));\n enc4 = keyStr.indexOf(input.charAt(i++));\n chr1 = enc1 << 2 | enc2 >> 4;\n chr2 = (enc2 & 15) << 4 | enc3 >> 2;\n chr3 = (enc3 & 3) << 6 | enc4;\n output = output + String.fromCharCode(chr1);\n\n if (enc3 !== 64) {\n output = output + String.fromCharCode(chr2);\n }\n\n if (enc4 !== 64) {\n output = output + String.fromCharCode(chr3);\n }\n } while (i < input.length);\n\n return output;\n }; // Converts a string of base64 into a byte array.\n // Throws error on invalid input.\n\n function intArrayFromBase64(s) {\n if (typeof ENVIRONMENT_IS_NODE === 'boolean' && ENVIRONMENT_IS_NODE) {\n var buf;\n\n try {\n buf = Buffer.from(s, 'base64');\n } catch (_) {\n buf = new Buffer(s, 'base64');\n }\n\n return new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength);\n }\n\n try {\n var decoded = decodeBase64(s);\n var bytes = new Uint8Array(decoded.length);\n\n for (var i = 0; i < decoded.length; ++i) {\n bytes[i] = decoded.charCodeAt(i);\n }\n\n return bytes;\n } catch (_) {\n throw new Error('Converting base64 string to bytes failed.');\n }\n } // If filename is a base64 data URI, parses and returns data (Buffer on node,\n // Uint8Array otherwise). If filename is not a base64 data URI, returns undefined.\n\n\n function tryParseAsDataURI(filename) {\n if (!isDataURI(filename)) {\n return;\n }\n\n return intArrayFromBase64(filename.slice(dataURIPrefix.length));\n }\n\n function nullFunc_ii(x) {\n err(\"Invalid function pointer called with signature 'ii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)\");\n err(\"Build with ASSERTIONS=2 for more info.\");\n abort(x);\n }\n\n function nullFunc_iiii(x) {\n err(\"Invalid function pointer called with signature 'iiii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)\");\n err(\"Build with ASSERTIONS=2 for more info.\");\n abort(x);\n }\n\n function nullFunc_vii(x) {\n err(\"Invalid function pointer called with signature 'vii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)\");\n err(\"Build with ASSERTIONS=2 for more info.\");\n abort(x);\n }\n\n function nullFunc_viii(x) {\n err(\"Invalid function pointer called with signature 'viii'. Perhaps this is an invalid value (e.g. caused by calling a virtual method on a NULL pointer)? Or calling a function with an incorrect type, which will fail? (it is worth building your source files with -Werror (warnings are errors), as warnings can indicate undefined behavior which can cause this)\");\n err(\"Build with ASSERTIONS=2 for more info.\");\n abort(x);\n }\n\n Module['wasmTableSize'] = 18;\n Module['wasmMaxTableSize'] = 18;\n\n function invoke_ii(index, a1) {\n var sp = _stackSave();\n\n try {\n return Module[\"dynCall_ii\"](index, a1);\n } catch (e) {\n _stackRestore(sp);\n\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\n Module[\"setThrew\"](1, 0);\n }\n }\n\n function jsCall_ii(index, a1) {\n return functionPointers[index](a1);\n }\n\n function invoke_iiii(index, a1, a2, a3) {\n var sp = _stackSave();\n\n try {\n return Module[\"dynCall_iiii\"](index, a1, a2, a3);\n } catch (e) {\n _stackRestore(sp);\n\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\n Module[\"setThrew\"](1, 0);\n }\n }\n\n function jsCall_iiii(index, a1, a2, a3) {\n return functionPointers[index](a1, a2, a3);\n }\n\n function invoke_vii(index, a1, a2) {\n var sp = _stackSave();\n\n try {\n Module[\"dynCall_vii\"](index, a1, a2);\n } catch (e) {\n _stackRestore(sp);\n\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\n Module[\"setThrew\"](1, 0);\n }\n }\n\n function jsCall_vii(index, a1, a2) {\n functionPointers[index](a1, a2);\n }\n\n function invoke_viii(index, a1, a2, a3) {\n var sp = _stackSave();\n\n try {\n Module[\"dynCall_viii\"](index, a1, a2, a3);\n } catch (e) {\n _stackRestore(sp);\n\n if (typeof e !== 'number' && e !== 'longjmp') throw e;\n Module[\"setThrew\"](1, 0);\n }\n }\n\n function jsCall_viii(index, a1, a2, a3) {\n functionPointers[index](a1, a2, a3);\n }\n\n Module.asmGlobalArg = {};\n Module.asmLibraryArg = {\n \"abort\": abort,\n \"assert\": assert,\n \"enlargeMemory\": enlargeMemory,\n \"getTotalMemory\": getTotalMemory,\n \"abortOnCannotGrowMemory\": abortOnCannotGrowMemory,\n \"abortStackOverflow\": abortStackOverflow,\n \"nullFunc_ii\": nullFunc_ii,\n \"nullFunc_iiii\": nullFunc_iiii,\n \"nullFunc_vii\": nullFunc_vii,\n \"nullFunc_viii\": nullFunc_viii,\n \"invoke_ii\": invoke_ii,\n \"jsCall_ii\": jsCall_ii,\n \"invoke_iiii\": invoke_iiii,\n \"jsCall_iiii\": jsCall_iiii,\n \"invoke_vii\": invoke_vii,\n \"jsCall_vii\": jsCall_vii,\n \"invoke_viii\": invoke_viii,\n \"jsCall_viii\": jsCall_viii,\n \"___lock\": ___lock,\n \"___setErrNo\": ___setErrNo,\n \"___syscall140\": ___syscall140,\n \"___syscall146\": ___syscall146,\n \"___syscall54\": ___syscall54,\n \"___syscall6\": ___syscall6,\n \"___unlock\": ___unlock,\n \"__exit\": __exit,\n \"_abort\": _abort,\n \"_emscripten_memcpy_big\": _emscripten_memcpy_big,\n \"_exit\": _exit,\n \"flush_NO_FILESYSTEM\": flush_NO_FILESYSTEM,\n \"DYNAMICTOP_PTR\": DYNAMICTOP_PTR,\n \"tempDoublePtr\": tempDoublePtr,\n \"ABORT\": ABORT,\n \"STACKTOP\": STACKTOP,\n \"STACK_MAX\": STACK_MAX\n }; // EMSCRIPTEN_START_ASM\n\n var asm = Module[\"asm\"] // EMSCRIPTEN_END_ASM\n (Module.asmGlobalArg, Module.asmLibraryArg, buffer);\n var real____errno_location = asm[\"___errno_location\"];\n\n asm[\"___errno_location\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real____errno_location.apply(null, arguments);\n };\n\n var real__decompress = asm[\"_decompress\"];\n\n asm[\"_decompress\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__decompress.apply(null, arguments);\n };\n\n var real__fflush = asm[\"_fflush\"];\n\n asm[\"_fflush\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__fflush.apply(null, arguments);\n };\n\n var real__finish = asm[\"_finish\"];\n\n asm[\"_finish\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__finish.apply(null, arguments);\n };\n\n var real__free = asm[\"_free\"];\n\n asm[\"_free\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__free.apply(null, arguments);\n };\n\n var real__llvm_bswap_i32 = asm[\"_llvm_bswap_i32\"];\n\n asm[\"_llvm_bswap_i32\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__llvm_bswap_i32.apply(null, arguments);\n };\n\n var real__malloc = asm[\"_malloc\"];\n\n asm[\"_malloc\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__malloc.apply(null, arguments);\n };\n\n var real__registerCallback = asm[\"_registerCallback\"];\n\n asm[\"_registerCallback\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__registerCallback.apply(null, arguments);\n };\n\n var real__sbrk = asm[\"_sbrk\"];\n\n asm[\"_sbrk\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__sbrk.apply(null, arguments);\n };\n\n var real__start = asm[\"_start\"];\n\n asm[\"_start\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real__start.apply(null, arguments);\n };\n\n var real_establishStackSpace = asm[\"establishStackSpace\"];\n\n asm[\"establishStackSpace\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_establishStackSpace.apply(null, arguments);\n };\n\n var real_getTempRet0 = asm[\"getTempRet0\"];\n\n asm[\"getTempRet0\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_getTempRet0.apply(null, arguments);\n };\n\n var real_setTempRet0 = asm[\"setTempRet0\"];\n\n asm[\"setTempRet0\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_setTempRet0.apply(null, arguments);\n };\n\n var real_setThrew = asm[\"setThrew\"];\n\n asm[\"setThrew\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_setThrew.apply(null, arguments);\n };\n\n var real_stackAlloc = asm[\"stackAlloc\"];\n\n asm[\"stackAlloc\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackAlloc.apply(null, arguments);\n };\n\n var real_stackRestore = asm[\"stackRestore\"];\n\n asm[\"stackRestore\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackRestore.apply(null, arguments);\n };\n\n var real_stackSave = asm[\"stackSave\"];\n\n asm[\"stackSave\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return real_stackSave.apply(null, arguments);\n };\n\n Module[\"asm\"] = asm;\n\n var ___errno_location = Module[\"___errno_location\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"___errno_location\"].apply(null, arguments);\n };\n\n var _decompress = Module[\"_decompress\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_decompress\"].apply(null, arguments);\n };\n\n var _emscripten_replace_memory = Module[\"_emscripten_replace_memory\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_emscripten_replace_memory\"].apply(null, arguments);\n };\n\n var _fflush = Module[\"_fflush\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_fflush\"].apply(null, arguments);\n };\n\n var _finish = Module[\"_finish\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_finish\"].apply(null, arguments);\n };\n\n var _free = Module[\"_free\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_free\"].apply(null, arguments);\n };\n\n var _llvm_bswap_i32 = Module[\"_llvm_bswap_i32\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_llvm_bswap_i32\"].apply(null, arguments);\n };\n\n var _malloc = Module[\"_malloc\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_malloc\"].apply(null, arguments);\n };\n\n var _memcpy = Module[\"_memcpy\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_memcpy\"].apply(null, arguments);\n };\n\n var _memset = Module[\"_memset\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_memset\"].apply(null, arguments);\n };\n\n var _registerCallback = Module[\"_registerCallback\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_registerCallback\"].apply(null, arguments);\n };\n\n var _sbrk = Module[\"_sbrk\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_sbrk\"].apply(null, arguments);\n };\n\n var _start = Module[\"_start\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"_start\"].apply(null, arguments);\n };\n\n var establishStackSpace = Module[\"establishStackSpace\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"establishStackSpace\"].apply(null, arguments);\n };\n\n var getTempRet0 = Module[\"getTempRet0\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"getTempRet0\"].apply(null, arguments);\n };\n\n var runPostSets = Module[\"runPostSets\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"runPostSets\"].apply(null, arguments);\n };\n\n var setTempRet0 = Module[\"setTempRet0\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"setTempRet0\"].apply(null, arguments);\n };\n\n var setThrew = Module[\"setThrew\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"setThrew\"].apply(null, arguments);\n };\n\n var stackAlloc = Module[\"stackAlloc\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"stackAlloc\"].apply(null, arguments);\n };\n\n var _stackRestore = Module[\"stackRestore\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"stackRestore\"].apply(null, arguments);\n };\n\n var _stackSave = Module[\"stackSave\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"stackSave\"].apply(null, arguments);\n };\n\n var dynCall_ii = Module[\"dynCall_ii\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"dynCall_ii\"].apply(null, arguments);\n };\n\n var dynCall_iiii = Module[\"dynCall_iiii\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"dynCall_iiii\"].apply(null, arguments);\n };\n\n var dynCall_vii = Module[\"dynCall_vii\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"dynCall_vii\"].apply(null, arguments);\n };\n\n var dynCall_viii = Module[\"dynCall_viii\"] = function () {\n assert(runtimeInitialized, 'you need to wait for the runtime to be ready (e.g. wait for main() to be called)');\n assert(!runtimeExited, 'the runtime was exited (use NO_EXIT_RUNTIME to keep it alive after main() exits)');\n return Module[\"asm\"][\"dynCall_viii\"].apply(null, arguments);\n };\n\n ; // === Auto-generated postamble setup entry stuff ===\n\n Module['asm'] = asm;\n if (!Module[\"intArrayFromString\"]) Module[\"intArrayFromString\"] = function () {\n abort(\"'intArrayFromString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"intArrayToString\"]) Module[\"intArrayToString\"] = function () {\n abort(\"'intArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"ccall\"]) Module[\"ccall\"] = function () {\n abort(\"'ccall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"cwrap\"]) Module[\"cwrap\"] = function () {\n abort(\"'cwrap' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"setValue\"]) Module[\"setValue\"] = function () {\n abort(\"'setValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getValue\"]) Module[\"getValue\"] = function () {\n abort(\"'getValue' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"allocate\"]) Module[\"allocate\"] = function () {\n abort(\"'allocate' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getMemory\"]) Module[\"getMemory\"] = function () {\n abort(\"'getMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"Pointer_stringify\"]) Module[\"Pointer_stringify\"] = function () {\n abort(\"'Pointer_stringify' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"AsciiToString\"]) Module[\"AsciiToString\"] = function () {\n abort(\"'AsciiToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stringToAscii\"]) Module[\"stringToAscii\"] = function () {\n abort(\"'stringToAscii' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"UTF8ArrayToString\"]) Module[\"UTF8ArrayToString\"] = function () {\n abort(\"'UTF8ArrayToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"UTF8ToString\"]) Module[\"UTF8ToString\"] = function () {\n abort(\"'UTF8ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stringToUTF8Array\"]) Module[\"stringToUTF8Array\"] = function () {\n abort(\"'stringToUTF8Array' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stringToUTF8\"]) Module[\"stringToUTF8\"] = function () {\n abort(\"'stringToUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"lengthBytesUTF8\"]) Module[\"lengthBytesUTF8\"] = function () {\n abort(\"'lengthBytesUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"UTF16ToString\"]) Module[\"UTF16ToString\"] = function () {\n abort(\"'UTF16ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stringToUTF16\"]) Module[\"stringToUTF16\"] = function () {\n abort(\"'stringToUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"lengthBytesUTF16\"]) Module[\"lengthBytesUTF16\"] = function () {\n abort(\"'lengthBytesUTF16' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"UTF32ToString\"]) Module[\"UTF32ToString\"] = function () {\n abort(\"'UTF32ToString' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stringToUTF32\"]) Module[\"stringToUTF32\"] = function () {\n abort(\"'stringToUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"lengthBytesUTF32\"]) Module[\"lengthBytesUTF32\"] = function () {\n abort(\"'lengthBytesUTF32' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"allocateUTF8\"]) Module[\"allocateUTF8\"] = function () {\n abort(\"'allocateUTF8' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stackTrace\"]) Module[\"stackTrace\"] = function () {\n abort(\"'stackTrace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"addOnPreRun\"]) Module[\"addOnPreRun\"] = function () {\n abort(\"'addOnPreRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"addOnInit\"]) Module[\"addOnInit\"] = function () {\n abort(\"'addOnInit' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"addOnPreMain\"]) Module[\"addOnPreMain\"] = function () {\n abort(\"'addOnPreMain' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n Module[\"addOnExit\"] = addOnExit;\n if (!Module[\"addOnPostRun\"]) Module[\"addOnPostRun\"] = function () {\n abort(\"'addOnPostRun' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"writeStringToMemory\"]) Module[\"writeStringToMemory\"] = function () {\n abort(\"'writeStringToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"writeArrayToMemory\"]) Module[\"writeArrayToMemory\"] = function () {\n abort(\"'writeArrayToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"writeAsciiToMemory\"]) Module[\"writeAsciiToMemory\"] = function () {\n abort(\"'writeAsciiToMemory' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"addRunDependency\"]) Module[\"addRunDependency\"] = function () {\n abort(\"'addRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"removeRunDependency\"]) Module[\"removeRunDependency\"] = function () {\n abort(\"'removeRunDependency' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"ENV\"]) Module[\"ENV\"] = function () {\n abort(\"'ENV' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"FS\"]) Module[\"FS\"] = function () {\n abort(\"'FS' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"FS_createFolder\"]) Module[\"FS_createFolder\"] = function () {\n abort(\"'FS_createFolder' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createPath\"]) Module[\"FS_createPath\"] = function () {\n abort(\"'FS_createPath' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createDataFile\"]) Module[\"FS_createDataFile\"] = function () {\n abort(\"'FS_createDataFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createPreloadedFile\"]) Module[\"FS_createPreloadedFile\"] = function () {\n abort(\"'FS_createPreloadedFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createLazyFile\"]) Module[\"FS_createLazyFile\"] = function () {\n abort(\"'FS_createLazyFile' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createLink\"]) Module[\"FS_createLink\"] = function () {\n abort(\"'FS_createLink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_createDevice\"]) Module[\"FS_createDevice\"] = function () {\n abort(\"'FS_createDevice' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"FS_unlink\"]) Module[\"FS_unlink\"] = function () {\n abort(\"'FS_unlink' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ). Alternatively, forcing filesystem support (-s FORCE_FILESYSTEM=1) can export this for you\");\n };\n if (!Module[\"GL\"]) Module[\"GL\"] = function () {\n abort(\"'GL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"staticAlloc\"]) Module[\"staticAlloc\"] = function () {\n abort(\"'staticAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"dynamicAlloc\"]) Module[\"dynamicAlloc\"] = function () {\n abort(\"'dynamicAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"warnOnce\"]) Module[\"warnOnce\"] = function () {\n abort(\"'warnOnce' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"loadDynamicLibrary\"]) Module[\"loadDynamicLibrary\"] = function () {\n abort(\"'loadDynamicLibrary' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"loadWebAssemblyModule\"]) Module[\"loadWebAssemblyModule\"] = function () {\n abort(\"'loadWebAssemblyModule' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getLEB\"]) Module[\"getLEB\"] = function () {\n abort(\"'getLEB' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getFunctionTables\"]) Module[\"getFunctionTables\"] = function () {\n abort(\"'getFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"alignFunctionTables\"]) Module[\"alignFunctionTables\"] = function () {\n abort(\"'alignFunctionTables' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"registerFunctions\"]) Module[\"registerFunctions\"] = function () {\n abort(\"'registerFunctions' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n Module[\"addFunction\"] = addFunction;\n if (!Module[\"removeFunction\"]) Module[\"removeFunction\"] = function () {\n abort(\"'removeFunction' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getFuncWrapper\"]) Module[\"getFuncWrapper\"] = function () {\n abort(\"'getFuncWrapper' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"prettyPrint\"]) Module[\"prettyPrint\"] = function () {\n abort(\"'prettyPrint' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"makeBigInt\"]) Module[\"makeBigInt\"] = function () {\n abort(\"'makeBigInt' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"dynCall\"]) Module[\"dynCall\"] = function () {\n abort(\"'dynCall' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"getCompilerSetting\"]) Module[\"getCompilerSetting\"] = function () {\n abort(\"'getCompilerSetting' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stackSave\"]) Module[\"stackSave\"] = function () {\n abort(\"'stackSave' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stackRestore\"]) Module[\"stackRestore\"] = function () {\n abort(\"'stackRestore' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"stackAlloc\"]) Module[\"stackAlloc\"] = function () {\n abort(\"'stackAlloc' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"establishStackSpace\"]) Module[\"establishStackSpace\"] = function () {\n abort(\"'establishStackSpace' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"print\"]) Module[\"print\"] = function () {\n abort(\"'print' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"printErr\"]) Module[\"printErr\"] = function () {\n abort(\"'printErr' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"intArrayFromBase64\"]) Module[\"intArrayFromBase64\"] = function () {\n abort(\"'intArrayFromBase64' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"tryParseAsDataURI\"]) Module[\"tryParseAsDataURI\"] = function () {\n abort(\"'tryParseAsDataURI' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n };\n if (!Module[\"ALLOC_NORMAL\"]) Object.defineProperty(Module, \"ALLOC_NORMAL\", {\n get: function get() {\n abort(\"'ALLOC_NORMAL' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n });\n if (!Module[\"ALLOC_STACK\"]) Object.defineProperty(Module, \"ALLOC_STACK\", {\n get: function get() {\n abort(\"'ALLOC_STACK' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n });\n if (!Module[\"ALLOC_STATIC\"]) Object.defineProperty(Module, \"ALLOC_STATIC\", {\n get: function get() {\n abort(\"'ALLOC_STATIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n });\n if (!Module[\"ALLOC_DYNAMIC\"]) Object.defineProperty(Module, \"ALLOC_DYNAMIC\", {\n get: function get() {\n abort(\"'ALLOC_DYNAMIC' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n });\n if (!Module[\"ALLOC_NONE\"]) Object.defineProperty(Module, \"ALLOC_NONE\", {\n get: function get() {\n abort(\"'ALLOC_NONE' was not exported. add it to EXTRA_EXPORTED_RUNTIME_METHODS (see the FAQ)\");\n }\n }); // Modularize mode returns a function, which can be called to\n // create instances. The instances provide a then() method,\n // must like a Promise, that receives a callback. The callback\n // is called when the module is ready to run, with the module\n // as a parameter. (Like a Promise, it also returns the module\n // so you can use the output of .then(..)).\n\n Module['then'] = function (func) {\n // We may already be ready to run code at this time. if\n // so, just queue a call to the callback.\n if (Module['calledRun']) {\n func(Module);\n } else {\n // we are not ready to call then() yet. we must call it\n // at the same time we would call onRuntimeInitialized.\n var old = Module['onRuntimeInitialized'];\n\n Module['onRuntimeInitialized'] = function () {\n if (old) old();\n func(Module);\n };\n }\n\n return Module;\n };\n /**\n * @constructor\n * @extends {Error}\n * @this {ExitStatus}\n */\n\n\n function ExitStatus(status) {\n this.name = \"ExitStatus\";\n this.message = \"Program terminated with exit(\" + status + \")\";\n this.status = status;\n }\n\n ;\n ExitStatus.prototype = new Error();\n ExitStatus.prototype.constructor = ExitStatus;\n var initialStackTop;\n var calledMain = false;\n\n dependenciesFulfilled = function runCaller() {\n // If run has never been called, and we should call run (INVOKE_RUN is true, and Module.noInitialRun is not false)\n if (!Module['calledRun']) run();\n if (!Module['calledRun']) dependenciesFulfilled = runCaller; // try this again later, after new deps are fulfilled\n };\n /** @type {function(Array=)} */\n\n\n function run(args) {\n args = args || Module['arguments'];\n\n if (runDependencies > 0) {\n return;\n }\n\n writeStackCookie();\n preRun();\n if (runDependencies > 0) return; // a preRun added a dependency, run will be called later\n\n if (Module['calledRun']) return; // run may have just been called through dependencies being fulfilled just in this very frame\n\n function doRun() {\n if (Module['calledRun']) return; // run may have just been called while the async setStatus time below was happening\n\n Module['calledRun'] = true;\n if (ABORT) return;\n ensureInitRuntime();\n preMain();\n if (Module['onRuntimeInitialized']) Module['onRuntimeInitialized']();\n assert(!Module['_main'], 'compiled without a main, but one is present. if you added it from JS, use Module[\"onRuntimeInitialized\"]');\n postRun();\n }\n\n if (Module['setStatus']) {\n Module['setStatus']('Running...');\n setTimeout(function () {\n setTimeout(function () {\n Module['setStatus']('');\n }, 1);\n doRun();\n }, 1);\n } else {\n doRun();\n }\n\n checkStackCookie();\n }\n\n Module['run'] = run;\n\n function exit(status, implicit) {\n // if this is just main exit-ing implicitly, and the status is 0, then we\n // don't need to do anything here and can just leave. if the status is\n // non-zero, though, then we need to report it.\n // (we may have warned about this earlier, if a situation justifies doing so)\n if (implicit && Module['noExitRuntime'] && status === 0) {\n return;\n }\n\n if (Module['noExitRuntime']) {\n // if exit() was called, we may warn the user if the runtime isn't actually being shut down\n if (!implicit) {\n err('exit(' + status + ') called, but noExitRuntime is set due to an async operation, so halting execution but not exiting the runtime or preventing further async execution (you can use emscripten_force_exit, if you want to force a true shutdown)');\n }\n } else {\n ABORT = true;\n EXITSTATUS = status;\n STACKTOP = initialStackTop;\n exitRuntime();\n if (Module['onExit']) Module['onExit'](status);\n }\n\n Module['quit'](status, new ExitStatus(status));\n }\n\n var abortDecorators = [];\n\n function abort(what) {\n if (Module['onAbort']) {\n Module['onAbort'](what);\n }\n\n if (what !== undefined) {\n out(what);\n err(what);\n what = JSON.stringify(what);\n } else {\n what = '';\n }\n\n ABORT = true;\n EXITSTATUS = 1;\n var extra = '';\n var output = 'abort(' + what + ') at ' + stackTrace() + extra;\n\n if (abortDecorators) {\n abortDecorators.forEach(function (decorator) {\n output = decorator(output, what);\n });\n }\n\n throw output;\n }\n\n Module['abort'] = abort; // {{PRE_RUN_ADDITIONS}}\n\n if (Module['preInit']) {\n if (typeof Module['preInit'] == 'function') Module['preInit'] = [Module['preInit']];\n\n while (Module['preInit'].length > 0) {\n Module['preInit'].pop()();\n }\n }\n\n run(); // {{POST_RUN_ADDITIONS}}\n // {{MODULE_ADDITIONS}}\n\n if (typeof window === \"object\" && (typeof ENVIRONMENT_IS_PTHREAD === 'undefined' || !ENVIRONMENT_IS_PTHREAD)) {\n var emrun_register_handlers = function emrun_register_handlers() {\n // When C code exit()s, we may still have remaining stdout and stderr messages in flight. In that case, we can't close\n // the browser until all those XHRs have finished, so the following state variables track that all communication is done,\n // after which we can close.\n var emrun_num_post_messages_in_flight = 0;\n var emrun_should_close_itself = false;\n\n function postExit(msg) {\n var http = new XMLHttpRequest();\n\n http.onreadystatechange = function () {\n if (http.readyState == 4\n /*DONE*/\n ) {\n try {\n // Try closing the current browser window, since it exit()ed itself. This can shut down the browser process\n // and emrun does not need to kill the whole browser process.\n if (typeof window !== 'undefined' && window.close) window.close();\n } catch (e) {}\n }\n };\n\n http.open(\"POST\", \"stdio.html\", true);\n http.send(msg);\n }\n\n function post(msg) {\n var http = new XMLHttpRequest();\n ++emrun_num_post_messages_in_flight;\n\n http.onreadystatechange = function () {\n if (http.readyState == 4\n /*DONE*/\n ) {\n if (--emrun_num_post_messages_in_flight == 0 && emrun_should_close_itself) postExit('^exit^' + EXITSTATUS);\n }\n };\n\n http.open(\"POST\", \"stdio.html\", true);\n http.send(msg);\n } // If the address contains localhost, or we are running the page from port 6931, we can assume we're running the test runner and should post stdout logs.\n\n\n if (document.URL.search(\"localhost\") != -1 || document.URL.search(\":6931/\") != -1) {\n var emrun_exit = function emrun_exit() {\n if (emrun_num_post_messages_in_flight == 0) postExit('^exit^' + EXITSTATUS);else emrun_should_close_itself = true;\n };\n\n var emrun_http_sequence_number = 1;\n var prevPrint = out;\n var prevErr = err;\n ;\n Module['addOnExit'](emrun_exit);\n\n out = function emrun_print(text) {\n post('^out^' + emrun_http_sequence_number++ + '^' + encodeURIComponent(text));\n prevPrint(text);\n };\n\n err = function emrun_printErr(text) {\n post('^err^' + emrun_http_sequence_number++ + '^' + encodeURIComponent(text));\n prevErr(text);\n }; // Notify emrun web server that this browser has successfully launched the page.\n\n\n post('^pageload^');\n }\n }; // POSTs the given binary data represented as a (typed) array data back to the emrun-based web server.\n // To use from C code, call e.g. EM_ASM({emrun_file_dump(\"file.dat\", HEAPU8.subarray($0, $0 + $1));}, my_data_pointer, my_data_pointer_byte_length);\n\n\n var emrun_file_dump = function emrun_file_dump(filename, data) {\n var http = new XMLHttpRequest();\n out('Dumping out file \"' + filename + '\" with ' + data.length + ' bytes of data.');\n http.open(\"POST\", \"stdio.html?file=\" + filename, true);\n http.send(data); // XXX this does not work in workers, for some odd reason (issue #2681)\n };\n\n if (typeof Module !== 'undefined' && typeof document !== 'undefined') emrun_register_handlers();\n }\n\n return Module;\n };\n}();\n\nif (typeof exports === 'object' && typeof module === 'object') module.exports = Module;else if (typeof define === 'function' && define['amd']) define([], function () {\n return Module;\n});else if (typeof exports === 'object') exports[\"Module\"] = Module;","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n} // path.resolve([from ...], to)\n// posix version\n\n\nexports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n}; // path.normalize(path)\n// posix version\n\n\nexports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n}; // posix version\n\n\nexports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n}; // posix version\n\n\nexports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n}; // path.relative(from, to)\n// posix version\n\n\nexports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47\n /*/*/\n ;\n var end = -1;\n var matchedSlash = true;\n\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n} // Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\n\n\nexports.basename = function (path, ext) {\n var f = basename(path);\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true; // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n\n var preDotState = 0;\n\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n\n if (code === 47\n /*/*/\n ) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n\n continue;\n }\n\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n\n if (code === 46\n /*.*/\n ) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 || // We saw a non-dot character immediately before the dot\n preDotState === 0 || // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n\n return path.slice(startDot, end);\n};\n\nfunction filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n} // String.prototype.substr - negative index don't work in IE8\n\n\nvar substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n} : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n};","'use strict';\n\nvar Event = require('geval/event');\n\nvar createStore = require('weakmap-shim/create-store');\n\nvar createHashListener = require('./object');\n\nvar createArrayListener = require('./array');\n\nmodule.exports = WeakmapEvent;\n\nfunction WeakmapEvent() {\n var store = createStore();\n listen.toHash = createHashListener(listen);\n listen.toArray = createArrayListener(listen);\n return {\n broadcast: broadcast,\n listen: listen\n };\n\n function broadcast(obj, value) {\n if (arguments.length === 1) {\n throw new Error('WeakmapEvent#broadcast expects arguments (obj, value)');\n }\n\n return getEvent(obj).broadcast(value, obj);\n }\n\n function listen(obj, fn) {\n if (arguments.length === 1) {\n throw new Error('WeakmapEvent#listen expects arguments (obj, listen)');\n }\n\n return getEvent(obj).listen(fn);\n }\n\n function getEvent(obj) {\n var eventStore = store(obj);\n eventStore.event = eventStore.event || Event();\n return eventStore.event;\n }\n}","var hiddenStore = require('./hidden-store.js');\n\nmodule.exports = createStore;\n\nfunction createStore() {\n var key = {};\n return function (obj) {\n if ((typeof obj !== 'object' || obj === null) && typeof obj !== 'function') {\n throw new Error('Weakmap-shim: Key must be object');\n }\n\n var store = obj.valueOf(key);\n return store && store.identity === key ? store : hiddenStore(obj, key);\n };\n}","module.exports = hiddenStore;\n\nfunction hiddenStore(obj, key) {\n var store = {\n identity: key\n };\n var valueOf = obj.valueOf;\n Object.defineProperty(obj, \"valueOf\", {\n value: function value(_value) {\n return _value !== key ? valueOf.apply(this, arguments) : store;\n },\n writable: true\n });\n return store;\n}","'use strict';\n\nvar extend = require('xtend');\n\nmodule.exports = function createHashListener(listen) {\n return function listenToHash(hash, fn) {\n var current = extend(hash);\n forEach(hash, listenKey);\n hash(onChange);\n\n function listenKey(key) {\n listen(hash[key], fn);\n }\n\n function onChange() {\n forEach(hash, function (key) {\n if (current[key] !== hash[key]) {\n listenKey(key);\n }\n });\n current = extend(hash);\n }\n };\n};\n\nfunction forEach(observable, callback) {\n return Object.keys(observable()).forEach(callback);\n}","'use strict';\n\nvar extend = require('xtend');\n\nmodule.exports = function createArrayListener(listen) {\n return function listenToArray(arr, fn) {\n var current = extend(arr._list);\n arr.forEach(function (item) {\n listen(item, fn);\n });\n arr(onChange);\n\n function onChange(data) {\n if (!arr.getLength()) return;\n var diff = data._diff;\n diff.forEach(function (change) {\n var index = change[0];\n\n for (var i = index; i < change.length; i++) {\n if (current[i] !== arr.get(i) && arr.get(i)) {\n listen(arr.get(i), fn);\n }\n }\n });\n current = extend(arr._list);\n }\n };\n};","'use strict';\n\nmodule.exports = function assertFunction(value) {\n if (typeof value !== 'function') {\n throw new TypeError('Expected function, got: ' + value);\n }\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getProfile = getProfile;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction getProfile(dongle_id) {\n var profile = dongle_id || 'me';\n return request.get('v1/' + profile + '/');\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n// This method of obtaining a reference to the global object needs to be\n// kept identical to the way it is obtained in runtime.js\nvar g = function () {\n return this;\n}() || Function(\"return this\")(); // Use `getOwnPropertyNames` because not all browsers support calling\n// `hasOwnProperty` on the global `self` object in a worker. See #183.\n\n\nvar hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf(\"regeneratorRuntime\") >= 0; // Save the old regeneratorRuntime in case it needs to be restored later.\n\nvar oldRuntime = hadRuntime && g.regeneratorRuntime; // Force reevalutation of runtime.js.\n\ng.regeneratorRuntime = undefined;\nmodule.exports = require(\"./runtime\");\n\nif (hadRuntime) {\n // Restore the original runtime.\n g.regeneratorRuntime = oldRuntime;\n} else {\n // Remove the global property added by runtime.js.\n try {\n delete g.regeneratorRuntime;\n } catch (e) {\n g.regeneratorRuntime = undefined;\n }\n}","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n!function (global) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n var inModule = typeof module === \"object\";\n var runtime = global.regeneratorRuntime;\n\n if (runtime) {\n if (inModule) {\n // If regeneratorRuntime is defined globally and we're in a module,\n // make the exports object identical to regeneratorRuntime.\n module.exports = runtime;\n } // Don't bother evaluating the rest of this file if the runtime was\n // already defined globally.\n\n\n return;\n } // Define the runtime globally (as expected by generated code) as either\n // module.exports (if we're in a module) or a new, empty object.\n\n\n runtime = global.regeneratorRuntime = inModule ? module.exports : {};\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []); // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n return generator;\n }\n\n runtime.wrap = wrap; // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n\n function tryCatch(fn, obj, arg) {\n try {\n return {\n type: \"normal\",\n arg: fn.call(obj, arg)\n };\n } catch (err) {\n return {\n type: \"throw\",\n arg: err\n };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\"; // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n\n var ContinueSentinel = {}; // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n\n function Generator() {}\n\n function GeneratorFunction() {}\n\n function GeneratorFunctionPrototype() {} // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n\n\n var IteratorPrototype = {};\n\n IteratorPrototype[iteratorSymbol] = function () {\n return this;\n };\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n\n if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n GeneratorFunctionPrototype.constructor = GeneratorFunction;\n GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = \"GeneratorFunction\"; // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function (method) {\n prototype[method] = function (arg) {\n return this._invoke(method, arg);\n };\n });\n }\n\n runtime.isGeneratorFunction = function (genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor ? ctor === GeneratorFunction || // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\" : false;\n };\n\n runtime.mark = function (genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n\n if (!(toStringTagSymbol in genFun)) {\n genFun[toStringTagSymbol] = \"GeneratorFunction\";\n }\n }\n\n genFun.prototype = Object.create(Gp);\n return genFun;\n }; // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n\n\n runtime.awrap = function (arg) {\n return {\n __await: arg\n };\n };\n\n function AsyncIterator(generator) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n\n if (value && typeof value === \"object\" && hasOwn.call(value, \"__await\")) {\n return Promise.resolve(value.__await).then(function (value) {\n invoke(\"next\", value, resolve, reject);\n }, function (err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return Promise.resolve(value).then(function (unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration. If the Promise is rejected, however, the\n // result for this iteration will be rejected with the same\n // reason. Note that rejections of yielded Promises are not\n // thrown back into the generator function, as is the case\n // when an awaited Promise is rejected. This difference in\n // behavior between yield and await is important, because it\n // allows the consumer to decide what to do with the yielded\n // rejection (swallow it and continue, manually .throw it back\n // into the generator, abandon iteration, whatever). With\n // await, by contrast, there is no opportunity to examine the\n // rejection reason outside the generator function, so the\n // only option is to throw it from the await expression, and\n // let the generator function handle the exception.\n result.value = unwrapped;\n resolve(result);\n }, reject);\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new Promise(function (resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise = // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n } // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n\n\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n\n AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n return this;\n };\n\n runtime.AsyncIterator = AsyncIterator; // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n\n runtime.async = function (innerFn, outerFn, self, tryLocsList) {\n var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));\n return runtime.isGeneratorFunction(outerFn) ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function (result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n } // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n\n\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n var record = tryCatch(innerFn, self, context);\n\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done ? GenStateCompleted : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n } else if (record.type === \"throw\") {\n state = GenStateCompleted; // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n } // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n\n\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n if (delegate.iterator.return) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (!info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value; // Resume execution at the desired location (see delegateYield).\n\n context.next = delegate.nextLoc; // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n } // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n\n\n context.delegate = null;\n return ContinueSentinel;\n } // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n\n\n defineIteratorMethods(Gp);\n Gp[toStringTagSymbol] = \"Generator\"; // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n\n Gp[iteratorSymbol] = function () {\n return this;\n };\n\n Gp.toString = function () {\n return \"[object Generator]\";\n };\n\n function pushTryEntry(locs) {\n var entry = {\n tryLoc: locs[0]\n };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{\n tryLoc: \"root\"\n }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n runtime.keys = function (object) {\n var keys = [];\n\n for (var key in object) {\n keys.push(key);\n }\n\n keys.reverse(); // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n } // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n\n\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1,\n next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n return next;\n };\n\n return next.next = next;\n }\n } // Return an iterator with no values.\n\n\n return {\n next: doneResult\n };\n }\n\n runtime.values = values;\n\n function doneResult() {\n return {\n value: undefined,\n done: true\n };\n }\n\n Context.prototype = {\n constructor: Context,\n reset: function reset(skipTempReset) {\n this.prev = 0;\n this.next = 0; // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n this.method = \"next\";\n this.arg = undefined;\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n stop: function stop() {\n this.done = true;\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n dispatchException: function dispatchException(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !!caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n abrupt: function abrupt(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc <= this.prev && hasOwn.call(entry, \"finallyLoc\") && this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry && (type === \"break\" || type === \"continue\") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n complete: function complete(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" || record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n finish: function finish(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n \"catch\": function _catch(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n\n return thrown;\n }\n } // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n\n\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n}( // In sloppy mode, unbound `this` refers to the global object, fallback to\n// Function constructor if we're in global strict mode. That is sadly a form\n// of indirect eval which violates Content Security Policy.\nfunction () {\n return this;\n}() || Function(\"return this\")());","require('../modules/es6.object.to-string');\n\nrequire('../modules/es6.string.iterator');\n\nrequire('../modules/web.dom.iterable');\n\nrequire('../modules/es6.promise');\n\nrequire('../modules/es7.promise.finally');\n\nrequire('../modules/es7.promise.try');\n\nmodule.exports = require('../modules/_core').Promise;","var toInteger = require('./_to-integer');\n\nvar defined = require('./_defined'); // true -> String#at\n// false -> String#codePointAt\n\n\nmodule.exports = function (TO_STRING) {\n return function (that, pos) {\n var s = String(defined(that));\n var i = toInteger(pos);\n var l = s.length;\n var a, b;\n if (i < 0 || i >= l) return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object'); // instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\n\n\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};","module.exports = require('./_hide');","'use strict';\n\nvar create = require('./_object-create');\n\nvar descriptor = require('./_property-desc');\n\nvar setToStringTag = require('./_set-to-string-tag');\n\nvar IteratorPrototype = {}; // 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\n\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () {\n return this;\n});\n\nmodule.exports = function (Constructor, NAME, next) {\n Constructor.prototype = create(IteratorPrototype, {\n next: descriptor(1, next)\n });\n setToStringTag(Constructor, NAME + ' Iterator');\n};","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\n\nvar dPs = require('./_object-dps');\n\nvar enumBugKeys = require('./_enum-bug-keys');\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nvar Empty = function Empty() {\n /* empty */\n};\n\nvar PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype\n\nvar _createDict = function createDict() {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n\n require('./_html').appendChild(iframe);\n\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n _createDict = iframeDocument.F;\n\n while (i--) {\n delete _createDict[PROTOTYPE][enumBugKeys[i]];\n }\n\n return _createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n\n if (O !== null) {\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty();\n Empty[PROTOTYPE] = null; // add \"__proto__\" for Object.getPrototypeOf polyfill\n\n result[IE_PROTO] = O;\n } else result = _createDict();\n\n return Properties === undefined ? result : dPs(result, Properties);\n};","var dP = require('./_object-dp');\n\nvar anObject = require('./_an-object');\n\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = getKeys(Properties);\n var length = keys.length;\n var i = 0;\n var P;\n\n while (length > i) {\n dP.f(O, P = keys[i++], Properties[P]);\n }\n\n return O;\n};","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\n\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};","var has = require('./_has');\n\nvar toIObject = require('./_to-iobject');\n\nvar arrayIndexOf = require('./_array-includes')(false);\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function (object, names) {\n var O = toIObject(object);\n var i = 0;\n var result = [];\n var key;\n\n for (key in O) {\n if (key != IE_PROTO) has(O, key) && result.push(key);\n } // Don't enum bug & hidden keys\n\n\n while (names.length > i) {\n if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n }\n\n return result;\n};","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof'); // eslint-disable-next-line no-prototype-builtins\n\n\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\n\nvar toLength = require('./_to-length');\n\nvar toAbsoluteIndex = require('./_to-absolute-index');\n\nmodule.exports = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value; // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++]; // eslint-disable-next-line no-self-compare\n\n if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not\n } else for (; length > index; index++) {\n if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n }\n }\n return !IS_INCLUDES && -1;\n };\n};","var toInteger = require('./_to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\nmodule.exports = function (index, length) {\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\n\nvar toObject = require('./_to-object');\n\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nvar ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n }\n\n return O instanceof Object ? ObjectProto : null;\n};","'use strict';\n\nvar addToUnscopables = require('./_add-to-unscopables');\n\nvar step = require('./_iter-step');\n\nvar Iterators = require('./_iterators');\n\nvar toIObject = require('./_to-iobject'); // 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\n\n\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n\n this._i = 0; // next index\n\n this._k = kind; // kind\n // 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var kind = this._k;\n var index = this._i++;\n\n if (!O || index >= O.length) {\n this._t = undefined;\n return step(1);\n }\n\n if (kind == 'keys') return step(0, index);\n if (kind == 'values') return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values'); // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\n\nIterators.Arguments = Iterators.Array;\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');","module.exports = function () {\n /* empty */\n};","module.exports = function (done, value) {\n return {\n value: value,\n done: !!done\n };\n};","'use strict';\n\nvar LIBRARY = require('./_library');\n\nvar global = require('./_global');\n\nvar ctx = require('./_ctx');\n\nvar classof = require('./_classof');\n\nvar $export = require('./_export');\n\nvar isObject = require('./_is-object');\n\nvar aFunction = require('./_a-function');\n\nvar anInstance = require('./_an-instance');\n\nvar forOf = require('./_for-of');\n\nvar speciesConstructor = require('./_species-constructor');\n\nvar task = require('./_task').set;\n\nvar microtask = require('./_microtask')();\n\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\n\nvar perform = require('./_perform');\n\nvar userAgent = require('./_user-agent');\n\nvar promiseResolve = require('./_promise-resolve');\n\nvar PROMISE = 'Promise';\nvar TypeError = global.TypeError;\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8 || '';\nvar $Promise = global[PROMISE];\nvar isNode = classof(process) == 'process';\n\nvar empty = function empty() {\n /* empty */\n};\n\nvar Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;\nvar newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n }; // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n\n\n return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) {\n /* empty */\n }\n}(); // helpers\n\nvar isThenable = function isThenable(it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function notify(promise, isReject) {\n if (promise._n) return;\n promise._n = true;\n var chain = promise._c;\n microtask(function () {\n var value = promise._v;\n var ok = promise._s == 1;\n var i = 0;\n\n var run = function run(reaction) {\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n\n try {\n if (handler) {\n if (!ok) {\n if (promise._h == 2) onHandleUnhandled(promise);\n promise._h = 1;\n }\n\n if (handler === true) result = value;else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n\n while (chain.length > i) {\n run(chain[i++]);\n } // variable length - can't use forEach\n\n\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\n\nvar onUnhandled = function onUnhandled(promise) {\n task.call(global, function () {\n var value = promise._v;\n var unhandled = isUnhandled(promise);\n var result, handler, console;\n\n if (unhandled) {\n result = perform(function () {\n if (isNode) {\n process.emit('unhandledRejection', value, promise);\n } else if (handler = global.onunhandledrejection) {\n handler({\n promise: promise,\n reason: value\n });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n }); // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n }\n\n promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\n\nvar isUnhandled = function isUnhandled(promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\n\nvar onHandleUnhandled = function onHandleUnhandled(promise) {\n task.call(global, function () {\n var handler;\n\n if (isNode) {\n process.emit('rejectionHandled', promise);\n } else if (handler = global.onrejectionhandled) {\n handler({\n promise: promise,\n reason: promise._v\n });\n }\n });\n};\n\nvar $reject = function $reject(value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n\n promise._v = value;\n promise._s = 2;\n if (!promise._a) promise._a = promise._c.slice();\n notify(promise, true);\n};\n\nvar $resolve = function $resolve(value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\n\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n\n if (then = isThenable(value)) {\n microtask(function () {\n var wrapper = {\n _w: promise,\n _d: false\n }; // wrap\n\n try {\n then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));\n } catch (e) {\n $reject.call(wrapper, e);\n }\n });\n } else {\n promise._v = value;\n promise._s = 1;\n notify(promise, false);\n }\n } catch (e) {\n $reject.call({\n _w: promise,\n _d: false\n }, e); // wrap\n }\n}; // constructor polyfill\n\n\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\n $Promise = function Promise(executor) {\n anInstance(this, $Promise, PROMISE, '_h');\n aFunction(executor);\n Internal.call(this);\n\n try {\n executor(ctx($resolve, this, 1), ctx($reject, this, 1));\n } catch (err) {\n $reject.call(this, err);\n }\n }; // eslint-disable-next-line no-unused-vars\n\n\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n\n this._a = undefined; // <- checked in isUnhandled reactions\n\n this._s = 0; // <- state\n\n this._d = false; // <- done\n\n this._v = undefined; // <- value\n\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n\n this._n = false; // <- notify\n };\n\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\n then: function then(onFulfilled, onRejected) {\n var reaction = newPromiseCapability(speciesConstructor(this, $Promise));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = isNode ? process.domain : undefined;\n\n this._c.push(reaction);\n\n if (this._a) this._a.push(reaction);\n if (this._s) notify(this, false);\n return reaction.promise;\n },\n // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function _catch(onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n\n OwnPromiseCapability = function OwnPromiseCapability() {\n var promise = new Internal();\n this.promise = promise;\n this.resolve = ctx($resolve, promise, 1);\n this.reject = ctx($reject, promise, 1);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {\n return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {\n Promise: $Promise\n});\n\nrequire('./_set-to-string-tag')($Promise, PROMISE);\n\nrequire('./_set-species')(PROMISE);\n\nWrapper = require('./_core')[PROMISE]; // statics\n\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n var $$reject = capability.reject;\n $$reject(r);\n return capability.promise;\n }\n});\n$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {\n // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var values = [];\n var index = 0;\n var remaining = 1;\n forOf(iterable, false, function (promise) {\n var $index = index++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n C.resolve(promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[$index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.e) reject(result.v);\n return capability.promise;\n },\n // 25.4.4.4 Promise.race(iterable)\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n forOf(iterable, false, function (promise) {\n C.resolve(promise).then(capability.resolve, reject);\n });\n });\n if (result.e) reject(result.v);\n return capability.promise;\n }\n});","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {\n throw TypeError(name + ': incorrect invocation!');\n }\n\n return it;\n};","var ctx = require('./_ctx');\n\nvar call = require('./_iter-call');\n\nvar isArrayIter = require('./_is-array-iter');\n\nvar anObject = require('./_an-object');\n\nvar toLength = require('./_to-length');\n\nvar getIterFn = require('./core.get-iterator-method');\n\nvar BREAK = {};\nvar RETURN = {};\n\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () {\n return iterable;\n } : getIterFn(iterable);\n var f = ctx(fn, that, entries ? 2 : 1);\n var index = 0;\n var length, step, iterator, result;\n if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); // fast case for arrays with default iterator\n\n if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {\n result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);\n if (result === BREAK || result === RETURN) return result;\n } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {\n result = call(iterator, f, step.value, entries);\n if (result === BREAK || result === RETURN) return result;\n }\n};\n\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n\n switch (args.length) {\n case 0:\n return un ? fn() : fn.call(that);\n\n case 1:\n return un ? fn(args[0]) : fn.call(that, args[0]);\n\n case 2:\n return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);\n\n case 3:\n return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);\n\n case 4:\n return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);\n }\n\n return fn.apply(that, args);\n};","var global = require('./_global');\n\nvar macrotask = require('./_task').set;\n\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function flush() {\n var parent, fn;\n if (isNode && (parent = process.domain)) parent.exit();\n\n while (head) {\n fn = head.fn;\n head = head.next;\n\n try {\n fn();\n } catch (e) {\n if (head) notify();else last = undefined;\n throw e;\n }\n }\n\n last = undefined;\n if (parent) parent.enter();\n }; // Node.js\n\n\n if (isNode) {\n notify = function notify() {\n process.nextTick(flush);\n }; // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\n\n } else if (Observer && !(global.navigator && global.navigator.standalone)) {\n var toggle = true;\n var node = document.createTextNode('');\n new Observer(flush).observe(node, {\n characterData: true\n }); // eslint-disable-line no-new\n\n notify = function notify() {\n node.data = toggle = !toggle;\n }; // environments with maybe non-completely correct, but existent Promise\n\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n\n notify = function notify() {\n promise.then(flush);\n }; // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n\n } else {\n notify = function notify() {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = {\n fn: fn,\n next: undefined\n };\n if (last) last.next = task;\n\n if (!head) {\n head = task;\n notify();\n }\n\n last = task;\n };\n};","var global = require('./_global');\n\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';","var hide = require('./_hide');\n\nmodule.exports = function (target, src, safe) {\n for (var key in src) {\n if (safe && target[key]) target[key] = src[key];else hide(target, key, src[key]);\n }\n\n return target;\n};","'use strict';\n\nvar global = require('./_global');\n\nvar core = require('./_core');\n\nvar dP = require('./_object-dp');\n\nvar DESCRIPTORS = require('./_descriptors');\n\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (KEY) {\n var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];\n if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {\n configurable: true,\n get: function get() {\n return this;\n }\n });\n};","// https://github.com/tc39/proposal-promise-finally\n'use strict';\n\nvar $export = require('./_export');\n\nvar core = require('./_core');\n\nvar global = require('./_global');\n\nvar speciesConstructor = require('./_species-constructor');\n\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', {\n 'finally': function _finally(onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () {\n return x;\n });\n } : onFinally, isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () {\n throw e;\n });\n } : onFinally);\n }\n});","'use strict'; // https://github.com/tc39/proposal-promise-try\n\nvar $export = require('./_export');\n\nvar newPromiseCapability = require('./_new-promise-capability');\n\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', {\n 'try': function _try(callbackfn) {\n var promiseCapability = newPromiseCapability.f(this);\n var result = perform(callbackfn);\n (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);\n return promiseCapability.promise;\n }\n});","var queryString = require('query-string');\n\nvar setQuery = require('url-set-query');\n\nvar assign = require('object-assign');\n\nvar ensureHeader = require('./lib/ensure-header.js'); // this is replaced in the browser\n\n\nvar request = require('./lib/request.js');\n\nvar mimeTypeJson = 'application/json';\n\nvar noop = function noop() {};\n\nmodule.exports = xhrRequest;\n\nfunction xhrRequest(url, opt, cb) {\n if (!url || typeof url !== 'string') {\n throw new TypeError('must specify a URL');\n }\n\n if (typeof opt === 'function') {\n cb = opt;\n opt = {};\n }\n\n if (cb && typeof cb !== 'function') {\n throw new TypeError('expected cb to be undefined or a function');\n }\n\n cb = cb || noop;\n opt = opt || {};\n var defaultResponse = opt.json ? 'json' : 'text';\n opt = assign({\n responseType: defaultResponse\n }, opt);\n var headers = opt.headers || {};\n var method = (opt.method || 'GET').toUpperCase();\n var query = opt.query;\n\n if (query) {\n if (typeof query !== 'string') {\n query = queryString.stringify(query);\n }\n\n url = setQuery(url, query);\n } // allow json response\n\n\n if (opt.responseType === 'json') {\n ensureHeader(headers, 'Accept', mimeTypeJson);\n } // if body content is json\n\n\n if (opt.json && method !== 'GET' && method !== 'HEAD') {\n ensureHeader(headers, 'Content-Type', mimeTypeJson);\n opt.body = JSON.stringify(opt.body);\n }\n\n opt.method = method;\n opt.url = url;\n opt.headers = headers;\n delete opt.query;\n delete opt.json;\n return request(opt, cb);\n}","'use strict';\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar objectAssign = require('object-assign');\n\nvar decodeComponent = require('decode-uri-component');\n\nfunction encoderForArrayFormat(opts) {\n switch (opts.arrayFormat) {\n case 'index':\n return function (key, value, index) {\n return value === null ? [encode(key, opts), '[', index, ']'].join('') : [encode(key, opts), '[', encode(index, opts), ']=', encode(value, opts)].join('');\n };\n\n case 'bracket':\n return function (key, value) {\n return value === null ? encode(key, opts) : [encode(key, opts), '[]=', encode(value, opts)].join('');\n };\n\n default:\n return function (key, value) {\n return value === null ? encode(key, opts) : [encode(key, opts), '=', encode(value, opts)].join('');\n };\n }\n}\n\nfunction parserForArrayFormat(opts) {\n var result;\n\n switch (opts.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n } else if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction encode(value, opts) {\n if (opts.encode) {\n return opts.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n } else if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction extract(str) {\n var queryStart = str.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return str.slice(queryStart + 1);\n}\n\nfunction parse(str, opts) {\n opts = objectAssign({\n arrayFormat: 'none'\n }, opts);\n var formatter = parserForArrayFormat(opts); // Create an object with no prototype\n // https://github.com/sindresorhus/query-string/issues/47\n\n var ret = Object.create(null);\n\n if (typeof str !== 'string') {\n return ret;\n }\n\n str = str.trim().replace(/^[?#&]/, '');\n\n if (!str) {\n return ret;\n }\n\n str.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('='); // Firefox (pre 40) decodes `%3D` to `=`\n // https://github.com/sindresorhus/query-string/pull/37\n\n var key = parts.shift();\n var val = parts.length > 0 ? parts.join('=') : undefined; // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = val === undefined ? null : decodeComponent(val);\n formatter(decodeComponent(key), val, ret);\n });\n return Object.keys(ret).sort().reduce(function (result, key) {\n var val = ret[key];\n\n if (Boolean(val) && typeof val === 'object' && !Array.isArray(val)) {\n // Sort object keys, not values\n result[key] = keysSorter(val);\n } else {\n result[key] = val;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (obj, opts) {\n var defaults = {\n encode: true,\n strict: true,\n arrayFormat: 'none'\n };\n opts = objectAssign(defaults, opts);\n\n if (opts.sort === false) {\n opts.sort = function () {};\n }\n\n var formatter = encoderForArrayFormat(opts);\n return obj ? Object.keys(obj).sort(opts.sort).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return '';\n }\n\n if (val === null) {\n return encode(key, opts);\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.slice().forEach(function (val2) {\n if (val2 === undefined) {\n return;\n }\n\n result.push(formatter(key, val2, result.length));\n });\n return result.join('&');\n }\n\n return encode(key, opts) + '=' + encode(val, opts);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&') : '';\n};\n\nexports.parseUrl = function (str, opts) {\n return {\n url: str.split('?')[0] || '',\n query: parse(extract(str), opts)\n };\n};","'use strict';\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': \"\\uFFFD\\uFFFD\",\n '%FF%FE': \"\\uFFFD\\uFFFD\"\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = \"\\uFFFD\";\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","module.exports = urlSetQuery;\n\nfunction urlSetQuery(url, query) {\n if (query) {\n // remove optional leading symbols\n query = query.trim().replace(/^(\\?|#|&)/, ''); // don't append empty query\n\n query = query ? '?' + query : query;\n var parts = url.split(/[\\?\\#]/);\n var start = parts[0];\n\n if (query && /\\:\\/\\/[^\\/]*$/.test(start)) {\n // e.g. http://foo.com -> http://foo.com/\n start = start + '/';\n }\n\n var match = url.match(/(\\#.*)$/);\n url = start + query;\n\n if (match) {\n // add hash back in\n url = url + match[0];\n }\n }\n\n return url;\n}","module.exports = ensureHeader;\n\nfunction ensureHeader(headers, key, value) {\n var lower = key.toLowerCase();\n\n if (!headers[key] && !headers[lower]) {\n headers[key] = value;\n }\n}","var xhr = require('xhr');\n\nvar normalize = require('./normalize-response');\n\nvar noop = function noop() {};\n\nmodule.exports = xhrRequest;\n\nfunction xhrRequest(opt, cb) {\n delete opt.uri; // for better JSON.parse error handling than xhr module\n\n var useJson = false;\n\n if (opt.responseType === 'json') {\n opt.responseType = 'text';\n useJson = true;\n }\n\n var req = xhr(opt, function xhrRequestResult(err, resp, body) {\n if (useJson && !err) {\n try {\n var text = resp.rawRequest.responseText;\n body = JSON.parse(text);\n } catch (e) {\n err = e;\n }\n }\n\n resp = normalize(opt, resp);\n if (err) cb(err, null, resp);else cb(err, body, resp);\n cb = noop;\n }); // Patch abort() so that it also calls the callback, but with an error\n\n var onabort = req.onabort;\n\n req.onabort = function () {\n var ret = onabort.apply(req, Array.prototype.slice.call(arguments));\n cb(new Error('XHR Aborted'));\n cb = noop;\n return ret;\n };\n\n return req;\n}","\"use strict\";\n\nvar window = require(\"global/window\");\n\nvar isFunction = require(\"is-function\");\n\nvar parseHeaders = require(\"parse-headers\");\n\nvar xtend = require(\"xtend\");\n\nmodule.exports = createXHR; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = createXHR;\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop;\ncreateXHR.XDomainRequest = \"withCredentials\" in new createXHR.XMLHttpRequest() ? createXHR.XMLHttpRequest : window.XDomainRequest;\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function (method) {\n createXHR[method === \"delete\" ? \"del\" : method] = function (uri, options, callback) {\n options = initParams(uri, options, callback);\n options.method = method.toUpperCase();\n return _createXHR(options);\n };\n});\n\nfunction forEachArray(array, iterator) {\n for (var i = 0; i < array.length; i++) {\n iterator(array[i]);\n }\n}\n\nfunction isEmpty(obj) {\n for (var i in obj) {\n if (obj.hasOwnProperty(i)) return false;\n }\n\n return true;\n}\n\nfunction initParams(uri, options, callback) {\n var params = uri;\n\n if (isFunction(options)) {\n callback = options;\n\n if (typeof uri === \"string\") {\n params = {\n uri: uri\n };\n }\n } else {\n params = xtend(options, {\n uri: uri\n });\n }\n\n params.callback = callback;\n return params;\n}\n\nfunction createXHR(uri, options, callback) {\n options = initParams(uri, options, callback);\n return _createXHR(options);\n}\n\nfunction _createXHR(options) {\n if (typeof options.callback === \"undefined\") {\n throw new Error(\"callback argument missing\");\n }\n\n var called = false;\n\n var callback = function cbOnce(err, response, body) {\n if (!called) {\n called = true;\n options.callback(err, response, body);\n }\n };\n\n function readystatechange() {\n if (xhr.readyState === 4) {\n setTimeout(loadFunc, 0);\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined;\n\n if (xhr.response) {\n body = xhr.response;\n } else {\n body = xhr.responseText || getXml(xhr);\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body);\n } catch (e) {}\n }\n\n return body;\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer);\n\n if (!(evt instanceof Error)) {\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\"));\n }\n\n evt.statusCode = 0;\n return callback(evt, failureResponse);\n } // will load the data & process the response in a special response object\n\n\n function loadFunc() {\n if (aborted) return;\n var status;\n clearTimeout(timeoutTimer);\n\n if (options.useXDR && xhr.status === undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200;\n } else {\n status = xhr.status === 1223 ? 204 : xhr.status;\n }\n\n var response = failureResponse;\n var err = null;\n\n if (status !== 0) {\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n };\n\n if (xhr.getAllResponseHeaders) {\n //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders());\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\");\n }\n\n return callback(err, response, response.body);\n }\n\n var xhr = options.xhr || null;\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest();\n } else {\n xhr = new createXHR.XMLHttpRequest();\n }\n }\n\n var key;\n var aborted;\n var uri = xhr.url = options.uri || options.url;\n var method = xhr.method = options.method || \"GET\";\n var body = options.body || options.data;\n var headers = xhr.headers = options.headers || {};\n var sync = !!options.sync;\n var isJson = false;\n var timeoutTimer;\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n };\n\n if (\"json\" in options && options.json !== false) {\n isJson = true;\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\"); //Don't override existing accept header declared by user\n\n body = JSON.stringify(options.json === true ? body : options.json);\n }\n }\n\n xhr.onreadystatechange = readystatechange;\n xhr.onload = loadFunc;\n xhr.onerror = errorFunc; // IE9 must have onprogress be set to a unique function.\n\n xhr.onprogress = function () {// IE must die\n };\n\n xhr.onabort = function () {\n aborted = true;\n };\n\n xhr.ontimeout = errorFunc;\n xhr.open(method, uri, !sync, options.username, options.password); //has to be after open\n\n if (!sync) {\n xhr.withCredentials = !!options.withCredentials;\n } // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n\n\n if (!sync && options.timeout > 0) {\n timeoutTimer = setTimeout(function () {\n if (aborted) return;\n aborted = true; //IE9 may still call readystatechange\n\n xhr.abort(\"timeout\");\n var e = new Error(\"XMLHttpRequest timeout\");\n e.code = \"ETIMEDOUT\";\n errorFunc(e);\n }, options.timeout);\n }\n\n if (xhr.setRequestHeader) {\n for (key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\");\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType;\n }\n\n if (\"beforeSend\" in options && typeof options.beforeSend === \"function\") {\n options.beforeSend(xhr);\n } // Microsoft Edge browser sends \"undefined\" when send is called with undefined value.\n // XMLHttpRequest spec says to pass null as body to indicate no body\n // See https://github.com/naugtur/xhr/issues/100.\n\n\n xhr.send(body || null);\n return xhr;\n}\n\nfunction getXml(xhr) {\n // xhr.responseXML will throw Exception \"InvalidStateError\" or \"DOMException\"\n // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML.\n try {\n if (xhr.responseType === \"document\") {\n return xhr.responseXML;\n }\n\n var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === \"parsererror\";\n\n if (xhr.responseType === \"\" && !firefoxBugTakenEffect) {\n return xhr.responseXML;\n }\n } catch (e) {}\n\n return null;\n}\n\nfunction noop() {}","var win;\n\nif (typeof window !== \"undefined\") {\n win = window;\n} else if (typeof global !== \"undefined\") {\n win = global;\n} else if (typeof self !== \"undefined\") {\n win = self;\n} else {\n win = {};\n}\n\nmodule.exports = win;","var trim = require('string.prototype.trim'),\n forEach = require('for-each'),\n isArray = function isArray(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n};\n\nmodule.exports = function (headers) {\n if (!headers) return {};\n var result = {};\n forEach(trim(headers).split('\\n'), function (row) {\n var index = row.indexOf(':'),\n key = trim(row.slice(0, index)).toLowerCase(),\n value = trim(row.slice(index + 1));\n\n if (typeof result[key] === 'undefined') {\n result[key] = value;\n } else if (isArray(result[key])) {\n result[key].push(value);\n } else {\n result[key] = [result[key], value];\n }\n });\n return result;\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar define = require('define-properties');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar boundTrim = bind.call(Function.call, getPolyfill());\ndefine(boundTrim, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = boundTrim;","'use strict';\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n\n var args = slice.call(arguments, 1);\n var bound;\n\n var binder = function binder() {\n if (this instanceof bound) {\n var result = target.apply(this, args.concat(slice.call(arguments)));\n\n if (Object(result) === result) {\n return result;\n }\n\n return this;\n } else {\n return target.apply(that, args.concat(slice.call(arguments)));\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar keysShim;\n\nif (!Object.keys) {\n // modified from https://github.com/es-shims/es5-shim\n var has = Object.prototype.hasOwnProperty;\n var toStr = Object.prototype.toString;\n\n var isArgs = require('./isArguments'); // eslint-disable-line global-require\n\n\n var isEnumerable = Object.prototype.propertyIsEnumerable;\n var hasDontEnumBug = !isEnumerable.call({\n toString: null\n }, 'toString');\n var hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n var dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor'];\n\n var equalsConstructorPrototype = function equalsConstructorPrototype(o) {\n var ctor = o.constructor;\n return ctor && ctor.prototype === o;\n };\n\n var excludedKeys = {\n $applicationCache: true,\n $console: true,\n $external: true,\n $frame: true,\n $frameElement: true,\n $frames: true,\n $innerHeight: true,\n $innerWidth: true,\n $onmozfullscreenchange: true,\n $onmozfullscreenerror: true,\n $outerHeight: true,\n $outerWidth: true,\n $pageXOffset: true,\n $pageYOffset: true,\n $parent: true,\n $scrollLeft: true,\n $scrollTop: true,\n $scrollX: true,\n $scrollY: true,\n $self: true,\n $webkitIndexedDB: true,\n $webkitStorageInfo: true,\n $window: true\n };\n\n var hasAutomationEqualityBug = function () {\n /* global window */\n if (typeof window === 'undefined') {\n return false;\n }\n\n for (var k in window) {\n try {\n if (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n try {\n equalsConstructorPrototype(window[k]);\n } catch (e) {\n return true;\n }\n }\n } catch (e) {\n return true;\n }\n }\n\n return false;\n }();\n\n var equalsConstructorPrototypeIfNotBuggy = function equalsConstructorPrototypeIfNotBuggy(o) {\n /* global window */\n if (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n return equalsConstructorPrototype(o);\n }\n\n try {\n return equalsConstructorPrototype(o);\n } catch (e) {\n return false;\n }\n };\n\n keysShim = function keys(object) {\n var isObject = object !== null && typeof object === 'object';\n var isFunction = toStr.call(object) === '[object Function]';\n var isArguments = isArgs(object);\n var isString = isObject && toStr.call(object) === '[object String]';\n var theKeys = [];\n\n if (!isObject && !isFunction && !isArguments) {\n throw new TypeError('Object.keys called on a non-object');\n }\n\n var skipProto = hasProtoEnumBug && isFunction;\n\n if (isString && object.length > 0 && !has.call(object, 0)) {\n for (var i = 0; i < object.length; ++i) {\n theKeys.push(String(i));\n }\n }\n\n if (isArguments && object.length > 0) {\n for (var j = 0; j < object.length; ++j) {\n theKeys.push(String(j));\n }\n } else {\n for (var name in object) {\n if (!(skipProto && name === 'prototype') && has.call(object, name)) {\n theKeys.push(String(name));\n }\n }\n }\n\n if (hasDontEnumBug) {\n var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n for (var k = 0; k < dontEnums.length; ++k) {\n if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n theKeys.push(dontEnums[k]);\n }\n }\n }\n\n return theKeys;\n };\n}\n\nmodule.exports = keysShim;","'use strict';\n\nvar GetIntrinsic = require('./GetIntrinsic');\n\nvar $Object = GetIntrinsic('%Object%');\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $String = GetIntrinsic('%String%');\nvar $Number = GetIntrinsic('%Number%');\n\nvar assertRecord = require('./helpers/assertRecord');\n\nvar isPropertyDescriptor = require('./helpers/isPropertyDescriptor');\n\nvar $isNaN = require('./helpers/isNaN');\n\nvar $isFinite = require('./helpers/isFinite');\n\nvar sign = require('./helpers/sign');\n\nvar mod = require('./helpers/mod');\n\nvar IsCallable = require('is-callable');\n\nvar toPrimitive = require('es-to-primitive/es5');\n\nvar has = require('has');\n\nvar callBind = require('./helpers/callBind');\n\nvar strSlice = callBind($String.prototype.slice);\n\nvar isPrefixOf = function isPrefixOf(prefix, string) {\n if (prefix === string) {\n return true;\n }\n\n if (prefix.length > string.length) {\n return false;\n }\n\n return strSlice(string, 0, prefix.length) === prefix;\n}; // https://es5.github.io/#x9\n\n\nvar ES5 = {\n ToPrimitive: toPrimitive,\n ToBoolean: function ToBoolean(value) {\n return !!value;\n },\n ToNumber: function ToNumber(value) {\n return +value; // eslint-disable-line no-implicit-coercion\n },\n ToInteger: function ToInteger(value) {\n var number = this.ToNumber(value);\n\n if ($isNaN(number)) {\n return 0;\n }\n\n if (number === 0 || !$isFinite(number)) {\n return number;\n }\n\n return sign(number) * Math.floor(Math.abs(number));\n },\n ToInt32: function ToInt32(x) {\n return this.ToNumber(x) >> 0;\n },\n ToUint32: function ToUint32(x) {\n return this.ToNumber(x) >>> 0;\n },\n ToUint16: function ToUint16(value) {\n var number = this.ToNumber(value);\n\n if ($isNaN(number) || number === 0 || !$isFinite(number)) {\n return 0;\n }\n\n var posInt = sign(number) * Math.floor(Math.abs(number));\n return mod(posInt, 0x10000);\n },\n ToString: function ToString(value) {\n return $String(value);\n },\n ToObject: function ToObject(value) {\n this.CheckObjectCoercible(value);\n return $Object(value);\n },\n CheckObjectCoercible: function CheckObjectCoercible(value, optMessage) {\n /* jshint eqnull:true */\n if (value == null) {\n throw new $TypeError(optMessage || 'Cannot call method on ' + value);\n }\n\n return value;\n },\n IsCallable: IsCallable,\n SameValue: function SameValue(x, y) {\n if (x === y) {\n // 0 === -0, but they are not identical.\n if (x === 0) {\n return 1 / x === 1 / y;\n }\n\n return true;\n }\n\n return $isNaN(x) && $isNaN(y);\n },\n // https://www.ecma-international.org/ecma-262/5.1/#sec-8\n Type: function Type(x) {\n if (x === null) {\n return 'Null';\n }\n\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n\n if (typeof x === 'number') {\n return 'Number';\n }\n\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n\n if (typeof x === 'string') {\n return 'String';\n }\n },\n // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n IsPropertyDescriptor: function IsPropertyDescriptor(Desc) {\n return isPropertyDescriptor(this, Desc);\n },\n // https://ecma-international.org/ecma-262/5.1/#sec-8.10.1\n IsAccessorDescriptor: function IsAccessorDescriptor(Desc) {\n if (typeof Desc === 'undefined') {\n return false;\n }\n\n assertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n if (!has(Desc, '[[Get]]') && !has(Desc, '[[Set]]')) {\n return false;\n }\n\n return true;\n },\n // https://ecma-international.org/ecma-262/5.1/#sec-8.10.2\n IsDataDescriptor: function IsDataDescriptor(Desc) {\n if (typeof Desc === 'undefined') {\n return false;\n }\n\n assertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n if (!has(Desc, '[[Value]]') && !has(Desc, '[[Writable]]')) {\n return false;\n }\n\n return true;\n },\n // https://ecma-international.org/ecma-262/5.1/#sec-8.10.3\n IsGenericDescriptor: function IsGenericDescriptor(Desc) {\n if (typeof Desc === 'undefined') {\n return false;\n }\n\n assertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n if (!this.IsAccessorDescriptor(Desc) && !this.IsDataDescriptor(Desc)) {\n return true;\n }\n\n return false;\n },\n // https://ecma-international.org/ecma-262/5.1/#sec-8.10.4\n FromPropertyDescriptor: function FromPropertyDescriptor(Desc) {\n if (typeof Desc === 'undefined') {\n return Desc;\n }\n\n assertRecord(this, 'Property Descriptor', 'Desc', Desc);\n\n if (this.IsDataDescriptor(Desc)) {\n return {\n value: Desc['[[Value]]'],\n writable: !!Desc['[[Writable]]'],\n enumerable: !!Desc['[[Enumerable]]'],\n configurable: !!Desc['[[Configurable]]']\n };\n } else if (this.IsAccessorDescriptor(Desc)) {\n return {\n get: Desc['[[Get]]'],\n set: Desc['[[Set]]'],\n enumerable: !!Desc['[[Enumerable]]'],\n configurable: !!Desc['[[Configurable]]']\n };\n } else {\n throw new $TypeError('FromPropertyDescriptor must be called with a fully populated Property Descriptor');\n }\n },\n // https://ecma-international.org/ecma-262/5.1/#sec-8.10.5\n ToPropertyDescriptor: function ToPropertyDescriptor(Obj) {\n if (this.Type(Obj) !== 'Object') {\n throw new $TypeError('ToPropertyDescriptor requires an object');\n }\n\n var desc = {};\n\n if (has(Obj, 'enumerable')) {\n desc['[[Enumerable]]'] = this.ToBoolean(Obj.enumerable);\n }\n\n if (has(Obj, 'configurable')) {\n desc['[[Configurable]]'] = this.ToBoolean(Obj.configurable);\n }\n\n if (has(Obj, 'value')) {\n desc['[[Value]]'] = Obj.value;\n }\n\n if (has(Obj, 'writable')) {\n desc['[[Writable]]'] = this.ToBoolean(Obj.writable);\n }\n\n if (has(Obj, 'get')) {\n var getter = Obj.get;\n\n if (typeof getter !== 'undefined' && !this.IsCallable(getter)) {\n throw new TypeError('getter must be a function');\n }\n\n desc['[[Get]]'] = getter;\n }\n\n if (has(Obj, 'set')) {\n var setter = Obj.set;\n\n if (typeof setter !== 'undefined' && !this.IsCallable(setter)) {\n throw new $TypeError('setter must be a function');\n }\n\n desc['[[Set]]'] = setter;\n }\n\n if ((has(desc, '[[Get]]') || has(desc, '[[Set]]')) && (has(desc, '[[Value]]') || has(desc, '[[Writable]]'))) {\n throw new $TypeError('Invalid property descriptor. Cannot both specify accessors and a value or writable attribute');\n }\n\n return desc;\n },\n // https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.3\n 'Abstract Equality Comparison': function AbstractEqualityComparison(x, y) {\n var xType = this.Type(x);\n var yType = this.Type(y);\n\n if (xType === yType) {\n return x === y; // ES6+ specified this shortcut anyways.\n }\n\n if (x == null && y == null) {\n return true;\n }\n\n if (xType === 'Number' && yType === 'String') {\n return this['Abstract Equality Comparison'](x, this.ToNumber(y));\n }\n\n if (xType === 'String' && yType === 'Number') {\n return this['Abstract Equality Comparison'](this.ToNumber(x), y);\n }\n\n if (xType === 'Boolean') {\n return this['Abstract Equality Comparison'](this.ToNumber(x), y);\n }\n\n if (yType === 'Boolean') {\n return this['Abstract Equality Comparison'](x, this.ToNumber(y));\n }\n\n if ((xType === 'String' || xType === 'Number') && yType === 'Object') {\n return this['Abstract Equality Comparison'](x, this.ToPrimitive(y));\n }\n\n if (xType === 'Object' && (yType === 'String' || yType === 'Number')) {\n return this['Abstract Equality Comparison'](this.ToPrimitive(x), y);\n }\n\n return false;\n },\n // https://www.ecma-international.org/ecma-262/5.1/#sec-11.9.6\n 'Strict Equality Comparison': function StrictEqualityComparison(x, y) {\n var xType = this.Type(x);\n var yType = this.Type(y);\n\n if (xType !== yType) {\n return false;\n }\n\n if (xType === 'Undefined' || xType === 'Null') {\n return true;\n }\n\n return x === y; // shortcut for steps 4-7\n },\n // https://www.ecma-international.org/ecma-262/5.1/#sec-11.8.5\n // eslint-disable-next-line max-statements\n 'Abstract Relational Comparison': function AbstractRelationalComparison(x, y, LeftFirst) {\n if (this.Type(LeftFirst) !== 'Boolean') {\n throw new $TypeError('Assertion failed: LeftFirst argument must be a Boolean');\n }\n\n var px;\n var py;\n\n if (LeftFirst) {\n px = this.ToPrimitive(x, $Number);\n py = this.ToPrimitive(y, $Number);\n } else {\n py = this.ToPrimitive(y, $Number);\n px = this.ToPrimitive(x, $Number);\n }\n\n var bothStrings = this.Type(px) === 'String' && this.Type(py) === 'String';\n\n if (!bothStrings) {\n var nx = this.ToNumber(px);\n var ny = this.ToNumber(py);\n\n if ($isNaN(nx) || $isNaN(ny)) {\n return undefined;\n }\n\n if ($isFinite(nx) && $isFinite(ny) && nx === ny) {\n return false;\n }\n\n if (nx === 0 && ny === 0) {\n return false;\n }\n\n if (nx === Infinity) {\n return false;\n }\n\n if (ny === Infinity) {\n return true;\n }\n\n if (ny === -Infinity) {\n return false;\n }\n\n if (nx === -Infinity) {\n return true;\n }\n\n return nx < ny; // by now, these are both nonzero, finite, and not equal\n }\n\n if (isPrefixOf(py, px)) {\n return false;\n }\n\n if (isPrefixOf(px, py)) {\n return true;\n }\n\n return px < py; // both strings, neither a prefix of the other. shortcut for steps c-f\n }\n};\nmodule.exports = ES5;","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\n\nvar has = require('has');\n\nvar predicates = {\n // https://ecma-international.org/ecma-262/6.0/#sec-property-descriptor-specification-type\n 'Property Descriptor': function isPropertyDescriptor(ES, Desc) {\n if (ES.Type(Desc) !== 'Object') {\n return false;\n }\n\n var allowed = {\n '[[Configurable]]': true,\n '[[Enumerable]]': true,\n '[[Get]]': true,\n '[[Set]]': true,\n '[[Value]]': true,\n '[[Writable]]': true\n };\n\n for (var key in Desc) {\n // eslint-disable-line\n if (has(Desc, key) && !allowed[key]) {\n return false;\n }\n }\n\n var isData = has(Desc, '[[Value]]');\n var IsAccessor = has(Desc, '[[Get]]') || has(Desc, '[[Set]]');\n\n if (isData && IsAccessor) {\n throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n }\n\n return true;\n }\n};\n\nmodule.exports = function assertRecord(ES, recordType, argumentName, value) {\n var predicate = predicates[recordType];\n\n if (typeof predicate !== 'function') {\n throw new $SyntaxError('unknown record type: ' + recordType);\n }\n\n if (!predicate(ES, value)) {\n throw new $TypeError(argumentName + ' must be a ' + recordType);\n }\n};","'use strict';\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar has = require('has');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nmodule.exports = function IsPropertyDescriptor(ES, Desc) {\n if (ES.Type(Desc) !== 'Object') {\n return false;\n }\n\n var allowed = {\n '[[Configurable]]': true,\n '[[Enumerable]]': true,\n '[[Get]]': true,\n '[[Set]]': true,\n '[[Value]]': true,\n '[[Writable]]': true\n };\n\n for (var key in Desc) {\n // eslint-disable-line\n if (has(Desc, key) && !allowed[key]) {\n return false;\n }\n }\n\n if (ES.IsDataDescriptor(Desc) && ES.IsAccessorDescriptor(Desc)) {\n throw new $TypeError('Property Descriptors may not be both accessor and data descriptors');\n }\n\n return true;\n};","'use strict';\n\nmodule.exports = Number.isNaN || function isNaN(a) {\n return a !== a;\n};","'use strict';\n\nvar $isNaN = Number.isNaN || function (a) {\n return a !== a;\n};\n\nmodule.exports = Number.isFinite || function (x) {\n return typeof x === 'number' && !$isNaN(x) && x !== Infinity && x !== -Infinity;\n};","'use strict';\n\nmodule.exports = function sign(number) {\n return number >= 0 ? 1 : -1;\n};","'use strict';\n\nmodule.exports = function mod(number, modulo) {\n var remain = number % modulo;\n return Math.floor(remain >= 0 ? remain : remain + modulo);\n};","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nvar isPrimitive = require('./helpers/isPrimitive');\n\nvar isCallable = require('is-callable'); // http://ecma-international.org/ecma-262/5.1/#sec-8.12.8\n\n\nvar ES5internalSlots = {\n '[[DefaultValue]]': function DefaultValue(O) {\n var actualHint;\n\n if (arguments.length > 1) {\n actualHint = arguments[1];\n } else {\n actualHint = toStr.call(O) === '[object Date]' ? String : Number;\n }\n\n if (actualHint === String || actualHint === Number) {\n var methods = actualHint === String ? ['toString', 'valueOf'] : ['valueOf', 'toString'];\n var value, i;\n\n for (i = 0; i < methods.length; ++i) {\n if (isCallable(O[methods[i]])) {\n value = O[methods[i]]();\n\n if (isPrimitive(value)) {\n return value;\n }\n }\n }\n\n throw new TypeError('No default value');\n }\n\n throw new TypeError('invalid [[DefaultValue]] hint supplied');\n }\n}; // http://ecma-international.org/ecma-262/5.1/#sec-9.1\n\nmodule.exports = function ToPrimitive(input) {\n if (isPrimitive(input)) {\n return input;\n }\n\n if (arguments.length > 1) {\n return ES5internalSlots['[[DefaultValue]]'](input, arguments[1]);\n }\n\n return ES5internalSlots['[[DefaultValue]]'](input);\n};","module.exports = function isPrimitive(value) {\n return value === null || typeof value !== 'function' && typeof value !== 'object';\n};","'use strict';\n\nvar bind = require('function-bind');\n\nvar GetIntrinsic = require('../GetIntrinsic');\n\nvar $Function = GetIntrinsic('%Function%');\nvar $apply = $Function.apply;\nvar $call = $Function.call;\n\nmodule.exports = function callBind() {\n return bind.apply($call, arguments);\n};\n\nmodule.exports.apply = function applyBind() {\n return bind.apply($apply, arguments);\n};","'use strict';\n\nvar define = require('define-properties');\n\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimStringTrim() {\n var polyfill = getPolyfill();\n define(String.prototype, {\n trim: polyfill\n }, {\n trim: function testTrim() {\n return String.prototype.trim !== polyfill;\n }\n });\n return polyfill;\n};","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;","module.exports = getResponse;\n\nfunction getResponse(opt, resp) {\n if (!resp) return null;\n return {\n statusCode: resp.statusCode,\n headers: resp.headers,\n method: opt.method,\n url: opt.url,\n // the XHR object in browser, http response in Node\n rawRequest: resp.rawRequest ? resp.rawRequest : resp\n };\n}","'use strict';\n\nvar assert = require('assert-ok');\n\nvar codes = require('builtin-status-codes');\n\nvar isError = require('is-error-code');\n\nmodule.exports = function httpStatusError(code) {\n assert(typeof code === 'number', 'expected http status number');\n return !isError(code) ? null : createError(code);\n};\n\nfunction createError(code) {\n var err = new Error(codes[code] + ' (' + code + ')');\n err.statusCode = code;\n return err;\n}","'use strict';\n\nmodule.exports = function assertOk(value, message) {\n if (!value) {\n throw new Error(message || 'Expected true, got ' + value);\n }\n};","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Moved Temporarily\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Time-out\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Request Entity Too Large\",\n \"414\": \"Request-URI Too Large\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Requested Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Time-out\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n};","module.exports = SafeParseCallback;\n\nfunction SafeParseCallback(obj, reviver, callback) {\n if (arguments.length === 2) {\n callback = reviver;\n reviver = null;\n }\n\n var json;\n\n try {\n json = JSON.parse(obj, reviver);\n } catch (err) {\n return callback(err);\n }\n\n callback(null, json);\n}","'use strict';\n\nmodule.exports = function (x) {\n var type = typeof x;\n return x !== null && (type === 'object' || type === 'function');\n};","'use strict';\n\nvar queryString = require('query-string');\n\nvar flatten = require('obj-query');\n\nvar pipe = require('value-pipe');\n\nmodule.exports = pipe(flatten, queryString.stringify);","'use strict';\n\nvar strictUriEncode = require('strict-uri-encode');\n\nexports.extract = function (str) {\n return str.split('?')[1] || '';\n};\n\nexports.parse = function (str) {\n if (typeof str !== 'string') {\n return {};\n }\n\n str = str.trim().replace(/^(\\?|#|&)/, '');\n\n if (!str) {\n return {};\n }\n\n return str.split('&').reduce(function (ret, param) {\n var parts = param.replace(/\\+/g, ' ').split('='); // Firefox (pre 40) decodes `%3D` to `=`\n // https://github.com/sindresorhus/query-string/pull/37\n\n var key = parts.shift();\n var val = parts.length > 0 ? parts.join('=') : undefined;\n key = decodeURIComponent(key); // missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n val = val === undefined ? null : decodeURIComponent(val);\n\n if (!ret.hasOwnProperty(key)) {\n ret[key] = val;\n } else if (Array.isArray(ret[key])) {\n ret[key].push(val);\n } else {\n ret[key] = [ret[key], val];\n }\n\n return ret;\n }, {});\n};\n\nexports.stringify = function (obj) {\n return obj ? Object.keys(obj).sort().map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return '';\n }\n\n if (val === null) {\n return key;\n }\n\n if (Array.isArray(val)) {\n return val.slice().sort().map(function (val2) {\n return strictUriEncode(key) + '=' + strictUriEncode(val2);\n }).join('&');\n }\n\n return strictUriEncode(key) + '=' + strictUriEncode(val);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&') : '';\n};","'use strict';\n\nvar isObject = require('is-plain-obj');\n\nvar reduce = require('object.reduce');\n\nvar map = require('map-obj');\n\nvar pair = require('object-pair');\n\nvar assign = require('xtend/mutable');\n\nvar stringify = require('print-value');\n\nmodule.exports = function objectQuery(obj) {\n return isObject(obj) ? format(obj) : obj;\n};\n\nfunction format(obj) {\n return reduce(obj, function (acc, value, key) {\n var flat = isObject(value) ? flatten : pair;\n return assign(acc, flat(key, value));\n }, {});\n}\n\nfunction flatten(parentKey, value) {\n return map(value, function (key, value) {\n return [parentKey + '[' + key + ']', stringify(value)];\n });\n}","'use strict';\n\nvar toString = Object.prototype.toString;\n\nmodule.exports = function (x) {\n var prototype;\n return toString.call(x) === '[object Object]' && (prototype = Object.getPrototypeOf(x), prototype === null || prototype === Object.getPrototypeOf({}));\n};","/*!\n * object.reduce <https://github.com/jonschlinkert/object.reduce>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n'use strict';\n\nvar forOwn = require('for-own');\n\nmodule.exports = function reduce(o, fn, acc, thisArg) {\n var first = arguments.length > 2;\n\n if (o && !Object.keys(o).length && !first) {\n return null;\n }\n\n forOwn(o, function (value, key, orig) {\n if (!first) {\n acc = value;\n first = true;\n } else {\n acc = fn.call(thisArg, acc, value, key, orig);\n }\n });\n return acc;\n};","/*!\n * for-own <https://github.com/jonschlinkert/for-own>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n'use strict';\n\nvar forIn = require('for-in');\n\nvar hasOwn = Object.prototype.hasOwnProperty;\n\nmodule.exports = function forOwn(obj, fn, thisArg) {\n forIn(obj, function (val, key) {\n if (hasOwn.call(obj, key)) {\n return fn.call(thisArg, obj[key], key, obj);\n }\n });\n};","/*!\n * for-in <https://github.com/jonschlinkert/for-in>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n'use strict';\n\nmodule.exports = function forIn(obj, fn, thisArg) {\n for (var key in obj) {\n if (fn.call(thisArg, obj[key], key, obj) === false) {\n break;\n }\n }\n};","'use strict';\n\nmodule.exports = function (obj, cb) {\n var ret = {};\n var keys = Object.keys(obj);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var res = cb(key, obj[key], obj);\n ret[res[0]] = res[1];\n }\n\n return ret;\n};","'use strict';\n\nmodule.exports = function objectPair(key, value) {\n var obj = {};\n obj[key] = value;\n return obj;\n};","'use strict';\n\nvar isObject = require('isobject');\n\nvar safeStringify = require('json-stringify-safe');\n\nmodule.exports = function print(value) {\n var toString = isJson(value) ? stringify : String;\n return toString(value);\n};\n\nfunction isJson(value) {\n return isObject(value) || Array.isArray(value);\n}\n\nfunction stringify(value) {\n return safeStringify(value, null, '');\n}","/*!\n * isobject <https://github.com/jonschlinkert/isobject>\n *\n * Copyright (c) 2014-2015, Jon Schlinkert.\n * Licensed under the MIT License.\n */\n'use strict';\n\nvar isArray = require('isarray');\n\nmodule.exports = function isObject(o) {\n return o != null && typeof o === 'object' && !isArray(o);\n};","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};","exports = module.exports = stringify;\nexports.getSerialize = serializer;\n\nfunction stringify(obj, replacer, spaces, cycleReplacer) {\n return JSON.stringify(obj, serializer(replacer, cycleReplacer), spaces);\n}\n\nfunction serializer(replacer, cycleReplacer) {\n var stack = [],\n keys = [];\n if (cycleReplacer == null) cycleReplacer = function cycleReplacer(key, value) {\n if (stack[0] === value) return \"[Circular ~]\";\n return \"[Circular ~.\" + keys.slice(0, stack.indexOf(value)).join(\".\") + \"]\";\n };\n return function (key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n ~thisPos ? stack.splice(thisPos + 1) : stack.push(this);\n ~thisPos ? keys.splice(thisPos, Infinity, key) : keys.push(key);\n if (~stack.indexOf(value)) value = cycleReplacer.call(this, key, value);\n } else stack.push(value);\n\n return replacer == null ? value : replacer.call(this, key, value);\n };\n}","'use strict';\n\nmodule.exports = valuePipe;\n\nfunction valuePipe(fns) {\n if (!fns) throw new TypeError('At least one function is required');\n\n if (!Array.isArray(fns)) {\n fns = Array.prototype.slice.call(arguments);\n }\n\n return function valuePipeline(value) {\n for (var i = 0; i < fns.length; i++) {\n value = fns[i](value);\n }\n\n return value;\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _isFinite = require('babel-runtime/core-js/number/is-finite');\n\nvar _isFinite2 = _interopRequireDefault(_isFinite);\n\nexports.createAnnotation = createAnnotation;\nexports.getAnnotation = getAnnotation;\nexports.updateAnnotation = updateAnnotation;\nexports.listAnnotations = listAnnotations;\nexports.listMyAnnotations = listMyAnnotations;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nvar _validators = require('./validators');\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction createAnnotation(data) {\n data = _validators.AnnotationValidator.validate(data);\n\n if (data.error) {\n throw data.error;\n }\n\n data = data.value;\n return request.post('v1/annotations/new', data);\n}\n\nfunction getAnnotation(id) {\n return request.get('v1/annotations/' + id);\n}\n\nfunction updateAnnotation(id, data) {\n return request.patch('v1/annotations/' + id, {\n data: data\n });\n}\n\nfunction listAnnotations(_start, _end, dongleId) {\n if (!dongleId.length) {\n throw new Error('Invalid or empty dongleId');\n }\n\n var _verifyAnnotationStar = verifyAnnotationStartEnd(_start, _end),\n start = _verifyAnnotationStar.start,\n end = _verifyAnnotationStar.end;\n\n return request.get('v1/devices/' + dongleId + '/annotations/', {\n from: start,\n to: end\n });\n}\n\nfunction listMyAnnotations(_start, _end) {\n var _verifyAnnotationStar2 = verifyAnnotationStartEnd(_start, _end),\n start = _verifyAnnotationStar2.start,\n end = _verifyAnnotationStar2.end;\n\n return request.get('v1/me/annotations/', {\n from: start,\n to: end\n });\n}\n\nfunction verifyAnnotationStartEnd(start, end) {\n start = Number(start);\n end = Number(end);\n\n if (!(0, _isFinite2.default)(start)) {\n throw new Error('Invalid start time');\n }\n\n if (!(0, _isFinite2.default)(end)) {\n throw new Error('Invalid end time');\n }\n\n return {\n start: start,\n end: end\n };\n}","require('../../modules/es6.number.is-finite');\n\nmodule.exports = require('../../modules/_core').Number.isFinite;","// 20.1.2.2 Number.isFinite(number)\nvar $export = require('./_export');\n\nvar _isFinite = require('./_global').isFinite;\n\n$export($export.S, 'Number', {\n isFinite: function isFinite(it) {\n return typeof it == 'number' && _isFinite(it);\n }\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar Joi = require('joi-browser');\n\nvar AnnotationValidator = exports.AnnotationValidator = Joi.object().keys({\n canonical_segment_name: Joi.string().required(),\n offset_nanos_part: Joi.number().required(),\n offset_millis: Joi.number().required(),\n start_time_utc_millis: Joi.number().required(),\n end_time_utc_millis: Joi.number().required(),\n type: Joi.string().required(),\n data: Joi.object().keys({\n reason: Joi.string().required(),\n comment: Joi.string().allow('').optional()\n })\n});","(function webpackUniversalModuleDefinition(root, factory) {\n if (typeof exports === 'object' && typeof module === 'object') module.exports = factory();else if (typeof define === 'function' && define.amd) define(\"Joi\", [], factory);else if (typeof exports === 'object') exports[\"Joi\"] = factory();else root[\"Joi\"] = factory();\n})(this, function () {\n return (\n /******/\n function (modules) {\n // webpackBootstrap\n\n /******/\n // The module cache\n\n /******/\n var installedModules = {};\n /******/\n\n /******/\n // The require function\n\n /******/\n\n function __webpack_require__(moduleId) {\n /******/\n\n /******/\n // Check if module is in cache\n\n /******/\n if (installedModules[moduleId]) {\n /******/\n return installedModules[moduleId].exports;\n /******/\n }\n /******/\n // Create a new module (and put it into the cache)\n\n /******/\n\n\n var module = installedModules[moduleId] = {\n /******/\n i: moduleId,\n\n /******/\n l: false,\n\n /******/\n exports: {}\n /******/\n\n };\n /******/\n\n /******/\n // Execute the module function\n\n /******/\n\n modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n /******/\n\n /******/\n // Flag the module as loaded\n\n /******/\n\n module.l = true;\n /******/\n\n /******/\n // Return the exports of the module\n\n /******/\n\n return module.exports;\n /******/\n }\n /******/\n\n /******/\n\n /******/\n // expose the modules object (__webpack_modules__)\n\n /******/\n\n\n __webpack_require__.m = modules;\n /******/\n\n /******/\n // expose the module cache\n\n /******/\n\n __webpack_require__.c = installedModules;\n /******/\n\n /******/\n // identity function for calling harmony imports with the correct context\n\n /******/\n\n __webpack_require__.i = function (value) {\n return value;\n };\n /******/\n\n /******/\n // define getter function for harmony exports\n\n /******/\n\n\n __webpack_require__.d = function (exports, name, getter) {\n /******/\n if (!__webpack_require__.o(exports, name)) {\n /******/\n Object.defineProperty(exports, name, {\n /******/\n configurable: false,\n\n /******/\n enumerable: true,\n\n /******/\n get: getter\n /******/\n\n });\n /******/\n }\n /******/\n\n };\n /******/\n\n /******/\n // getDefaultExport function for compatibility with non-harmony modules\n\n /******/\n\n\n __webpack_require__.n = function (module) {\n /******/\n var getter = module && module.__esModule ?\n /******/\n function getDefault() {\n return module['default'];\n } :\n /******/\n function getModuleExports() {\n return module;\n };\n /******/\n\n __webpack_require__.d(getter, 'a', getter);\n /******/\n\n\n return getter;\n /******/\n };\n /******/\n\n /******/\n // Object.prototype.hasOwnProperty.call\n\n /******/\n\n\n __webpack_require__.o = function (object, property) {\n return Object.prototype.hasOwnProperty.call(object, property);\n };\n /******/\n\n /******/\n // __webpack_public_path__\n\n /******/\n\n\n __webpack_require__.p = \"\";\n /******/\n\n /******/\n // Load entry module and return exports\n\n /******/\n\n return __webpack_require__(__webpack_require__.s = 32);\n /******/\n }(\n /************************************************************************/\n\n /******/\n [\n /* 0 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer, process) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var Assert = __webpack_require__(17);\n\n var Crypto = __webpack_require__(15);\n\n var Path = __webpack_require__(37);\n\n var Util = __webpack_require__(16);\n\n var Escape = __webpack_require__(18); // Declare internals\n\n\n var internals = {}; // Clone object or array\n\n exports.clone = function (obj, seen) {\n if ((typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) !== 'object' || obj === null) {\n return obj;\n }\n\n seen = seen || new Map();\n var lookup = seen.get(obj);\n\n if (lookup) {\n return lookup;\n }\n\n var newObj = void 0;\n var cloneDeep = false;\n\n if (!Array.isArray(obj)) {\n if (Buffer.isBuffer(obj)) {\n newObj = Buffer.from(obj);\n } else if (obj instanceof Date) {\n newObj = new Date(obj.getTime());\n } else if (obj instanceof RegExp) {\n newObj = new RegExp(obj);\n } else {\n var proto = Object.getPrototypeOf(obj);\n\n if (proto && proto.isImmutable) {\n newObj = obj;\n } else {\n newObj = Object.create(proto);\n cloneDeep = true;\n }\n }\n } else {\n newObj = [];\n cloneDeep = true;\n }\n\n seen.set(obj, newObj);\n\n if (cloneDeep) {\n var keys = Object.getOwnPropertyNames(obj);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor && (descriptor.get || descriptor.set)) {\n Object.defineProperty(newObj, key, descriptor);\n } else {\n newObj[key] = exports.clone(obj[key], seen);\n }\n }\n }\n\n return newObj;\n }; // Merge all the properties of source into target, source wins in conflict, and by default null and undefined from source are applied\n\n /*eslint-disable */\n\n\n exports.merge = function (target, source, isNullOverride\n /* = true */\n , isMergeArrays\n /* = true */\n ) {\n /*eslint-enable */\n exports.assert(target && (typeof target === 'undefined' ? 'undefined' : _typeof(target)) === 'object', 'Invalid target value: must be an object');\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object', 'Invalid source value: must be null, undefined, or an object');\n\n if (!source) {\n return target;\n }\n\n if (Array.isArray(source)) {\n exports.assert(Array.isArray(target), 'Cannot merge array onto an object');\n\n if (isMergeArrays === false) {\n // isMergeArrays defaults to true\n target.length = 0; // Must not change target assignment\n }\n\n for (var i = 0; i < source.length; ++i) {\n target.push(exports.clone(source[i]));\n }\n\n return target;\n }\n\n var keys = Object.keys(source);\n\n for (var _i = 0; _i < keys.length; ++_i) {\n var key = keys[_i];\n\n if (key === '__proto__') {\n continue;\n }\n\n var value = source[key];\n\n if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object') {\n if (!target[key] || _typeof(target[key]) !== 'object' || Array.isArray(target[key]) !== Array.isArray(value) || value instanceof Date || Buffer.isBuffer(value) || value instanceof RegExp) {\n target[key] = exports.clone(value);\n } else {\n exports.merge(target[key], value, isNullOverride, isMergeArrays);\n }\n } else {\n if (value !== null && value !== undefined) {\n // Explicit to preserve empty strings\n target[key] = value;\n } else if (isNullOverride !== false) {\n // Defaults to true\n target[key] = value;\n }\n }\n }\n\n return target;\n }; // Apply options to a copy of the defaults\n\n\n exports.applyToDefaults = function (defaults, options, isNullOverride) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.clone(defaults);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n return exports.merge(copy, options, isNullOverride === true, false);\n }; // Clone an object except for the listed keys which are shallow copied\n\n\n exports.cloneWithShallow = function (source, keys) {\n if (!source || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) !== 'object') {\n return source;\n }\n\n var storage = internals.store(source, keys); // Move shallow copy items to storage\n\n var copy = exports.clone(source); // Deep copy the rest\n\n internals.restore(copy, source, storage); // Shallow copy the stored items and restore\n\n return copy;\n };\n\n internals.store = function (source, keys) {\n var storage = {};\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var value = exports.reach(source, key);\n\n if (value !== undefined) {\n storage[key] = value;\n internals.reachSet(source, key, undefined);\n }\n }\n\n return storage;\n };\n\n internals.restore = function (copy, source, storage) {\n var keys = Object.keys(storage);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n internals.reachSet(copy, key, storage[key]);\n internals.reachSet(source, key, storage[key]);\n }\n };\n\n internals.reachSet = function (obj, key, value) {\n var path = key.split('.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var segment = path[i];\n\n if (i + 1 === path.length) {\n ref[segment] = value;\n }\n\n ref = ref[segment];\n }\n }; // Apply options to defaults except for the listed keys which are shallow copied from option without merging\n\n\n exports.applyToDefaultsWithShallow = function (defaults, options, keys) {\n exports.assert(defaults && (typeof defaults === 'undefined' ? 'undefined' : _typeof(defaults)) === 'object', 'Invalid defaults value: must be an object');\n exports.assert(!options || options === true || (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options value: must be true, falsy or an object');\n exports.assert(keys && Array.isArray(keys), 'Invalid keys');\n\n if (!options) {\n // If no options, return null\n return null;\n }\n\n var copy = exports.cloneWithShallow(defaults, keys);\n\n if (options === true) {\n // If options is set to true, use defaults\n return copy;\n }\n\n var storage = internals.store(options, keys); // Move shallow copy items to storage\n\n exports.merge(copy, options, false, false); // Deep copy the rest\n\n internals.restore(copy, options, storage); // Shallow copy the stored items and restore\n\n return copy;\n }; // Deep object or array comparison\n\n\n exports.deepEqual = function (obj, ref, options, seen) {\n options = options || {\n prototype: true\n };\n var type = typeof obj === 'undefined' ? 'undefined' : _typeof(obj);\n\n if (type !== (typeof ref === 'undefined' ? 'undefined' : _typeof(ref))) {\n return false;\n }\n\n if (type !== 'object' || obj === null || ref === null) {\n if (obj === ref) {\n // Copied from Deep-eql, copyright(c) 2013 Jake Luer, jake@alogicalparadox.com, MIT Licensed, https://github.com/chaijs/deep-eql\n return obj !== 0 || 1 / obj === 1 / ref; // -0 / +0\n }\n\n return obj !== obj && ref !== ref; // NaN\n }\n\n seen = seen || [];\n\n if (seen.indexOf(obj) !== -1) {\n return true; // If previous comparison failed, it would have stopped execution\n }\n\n seen.push(obj);\n\n if (Array.isArray(obj)) {\n if (!Array.isArray(ref)) {\n return false;\n }\n\n if (!options.part && obj.length !== ref.length) {\n return false;\n }\n\n for (var i = 0; i < obj.length; ++i) {\n if (options.part) {\n var found = false;\n\n for (var j = 0; j < ref.length; ++j) {\n if (exports.deepEqual(obj[i], ref[j], options)) {\n found = true;\n break;\n }\n }\n\n return found;\n }\n\n if (!exports.deepEqual(obj[i], ref[i], options)) {\n return false;\n }\n }\n\n return true;\n }\n\n if (Buffer.isBuffer(obj)) {\n if (!Buffer.isBuffer(ref)) {\n return false;\n }\n\n if (obj.length !== ref.length) {\n return false;\n }\n\n for (var _i2 = 0; _i2 < obj.length; ++_i2) {\n if (obj[_i2] !== ref[_i2]) {\n return false;\n }\n }\n\n return true;\n }\n\n if (obj instanceof Date) {\n return ref instanceof Date && obj.getTime() === ref.getTime();\n }\n\n if (obj instanceof RegExp) {\n return ref instanceof RegExp && obj.toString() === ref.toString();\n }\n\n if (options.prototype) {\n if (Object.getPrototypeOf(obj) !== Object.getPrototypeOf(ref)) {\n return false;\n }\n }\n\n var keys = Object.getOwnPropertyNames(obj);\n\n if (!options.part && keys.length !== Object.getOwnPropertyNames(ref).length) {\n return false;\n }\n\n for (var _i3 = 0; _i3 < keys.length; ++_i3) {\n var key = keys[_i3];\n var descriptor = Object.getOwnPropertyDescriptor(obj, key);\n\n if (descriptor.get) {\n if (!exports.deepEqual(descriptor, Object.getOwnPropertyDescriptor(ref, key), options, seen)) {\n return false;\n }\n } else if (!exports.deepEqual(obj[key], ref[key], options, seen)) {\n return false;\n }\n }\n\n return true;\n }; // Remove duplicate items from array\n\n\n exports.unique = function (array, key) {\n var result = void 0;\n\n if (key) {\n result = [];\n var index = new Set();\n array.forEach(function (item) {\n var identifier = item[key];\n\n if (!index.has(identifier)) {\n index.add(identifier);\n result.push(item);\n }\n });\n } else {\n result = Array.from(new Set(array));\n }\n\n return result;\n }; // Convert array into object\n\n\n exports.mapToObject = function (array, key) {\n if (!array) {\n return null;\n }\n\n var obj = {};\n\n for (var i = 0; i < array.length; ++i) {\n if (key) {\n if (array[i][key]) {\n obj[array[i][key]] = true;\n }\n } else {\n obj[array[i]] = true;\n }\n }\n\n return obj;\n }; // Find the common unique items in two arrays\n\n\n exports.intersect = function (array1, array2, justFirst) {\n if (!array1 || !array2) {\n return [];\n }\n\n var common = [];\n var hash = Array.isArray(array1) ? exports.mapToObject(array1) : array1;\n var found = {};\n\n for (var i = 0; i < array2.length; ++i) {\n if (hash[array2[i]] && !found[array2[i]]) {\n if (justFirst) {\n return array2[i];\n }\n\n common.push(array2[i]);\n found[array2[i]] = true;\n }\n }\n\n return justFirst ? null : common;\n }; // Test if the reference contains the values\n\n\n exports.contain = function (ref, values, options) {\n /*\n string -> string(s)\n array -> item(s)\n object -> key(s)\n object -> object (key:value)\n */\n var valuePairs = null;\n\n if ((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' && (typeof values === 'undefined' ? 'undefined' : _typeof(values)) === 'object' && !Array.isArray(ref) && !Array.isArray(values)) {\n valuePairs = values;\n values = Object.keys(values);\n } else {\n values = [].concat(values);\n }\n\n options = options || {}; // deep, once, only, part\n\n exports.assert(typeof ref === 'string' || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object', 'Reference must be string or an object');\n exports.assert(values.length, 'Values array cannot be empty');\n var compare = void 0;\n var compareFlags = void 0;\n\n if (options.deep) {\n compare = exports.deepEqual;\n var hasOnly = options.hasOwnProperty('only');\n var hasPart = options.hasOwnProperty('part');\n compareFlags = {\n prototype: hasOnly ? options.only : hasPart ? !options.part : false,\n part: hasOnly ? !options.only : hasPart ? options.part : true\n };\n } else {\n compare = function compare(a, b) {\n return a === b;\n };\n }\n\n var misses = false;\n var matches = new Array(values.length);\n\n for (var i = 0; i < matches.length; ++i) {\n matches[i] = 0;\n }\n\n if (typeof ref === 'string') {\n var pattern = '(';\n\n for (var _i4 = 0; _i4 < values.length; ++_i4) {\n var value = values[_i4];\n exports.assert(typeof value === 'string', 'Cannot compare string reference to non-string value');\n pattern += (_i4 ? '|' : '') + exports.escapeRegex(value);\n }\n\n var regex = new RegExp(pattern + ')', 'g');\n var leftovers = ref.replace(regex, function ($0, $1) {\n var index = values.indexOf($1);\n ++matches[index];\n return ''; // Remove from string\n });\n misses = !!leftovers;\n } else if (Array.isArray(ref)) {\n for (var _i5 = 0; _i5 < ref.length; ++_i5) {\n var matched = false;\n\n for (var j = 0; j < values.length && matched === false; ++j) {\n matched = compare(values[j], ref[_i5], compareFlags) && j;\n }\n\n if (matched !== false) {\n ++matches[matched];\n } else {\n misses = true;\n }\n }\n } else {\n var keys = Object.getOwnPropertyNames(ref);\n\n for (var _i6 = 0; _i6 < keys.length; ++_i6) {\n var key = keys[_i6];\n var pos = values.indexOf(key);\n\n if (pos !== -1) {\n if (valuePairs && !compare(valuePairs[key], ref[key], compareFlags)) {\n return false;\n }\n\n ++matches[pos];\n } else {\n misses = true;\n }\n }\n }\n\n var result = false;\n\n for (var _i7 = 0; _i7 < matches.length; ++_i7) {\n result = result || !!matches[_i7];\n\n if (options.once && matches[_i7] > 1 || !options.part && !matches[_i7]) {\n return false;\n }\n }\n\n if (options.only && misses) {\n return false;\n }\n\n return result;\n }; // Flatten array\n\n\n exports.flatten = function (array, target) {\n var result = target || [];\n\n for (var i = 0; i < array.length; ++i) {\n if (Array.isArray(array[i])) {\n exports.flatten(array[i], result);\n } else {\n result.push(array[i]);\n }\n }\n\n return result;\n }; // Convert an object key chain string ('a.b.c') to reference (object[a][b][c])\n\n\n exports.reach = function (obj, chain, options) {\n if (chain === false || chain === null || typeof chain === 'undefined') {\n return obj;\n }\n\n options = options || {};\n\n if (typeof options === 'string') {\n options = {\n separator: options\n };\n }\n\n var path = chain.split(options.separator || '.');\n var ref = obj;\n\n for (var i = 0; i < path.length; ++i) {\n var key = path[i];\n\n if (key[0] === '-' && Array.isArray(ref)) {\n key = key.slice(1, key.length);\n key = ref.length - key;\n }\n\n if (!ref || !(((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || typeof ref === 'function') && key in ref) || (typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) !== 'object' && options.functions === false) {\n // Only object and function can have properties\n exports.assert(!options.strict || i + 1 === path.length, 'Missing segment', key, 'in reach path ', chain);\n exports.assert((typeof ref === 'undefined' ? 'undefined' : _typeof(ref)) === 'object' || options.functions === true || typeof ref !== 'function', 'Invalid segment', key, 'in reach path ', chain);\n ref = options.default;\n break;\n }\n\n ref = ref[key];\n }\n\n return ref;\n };\n\n exports.reachTemplate = function (obj, template, options) {\n return template.replace(/{([^}]+)}/g, function ($0, chain) {\n var value = exports.reach(obj, chain, options);\n return value === undefined || value === null ? '' : value;\n });\n };\n\n exports.formatStack = function (stack) {\n var trace = [];\n\n for (var i = 0; i < stack.length; ++i) {\n var item = stack[i];\n trace.push([item.getFileName(), item.getLineNumber(), item.getColumnNumber(), item.getFunctionName(), item.isConstructor()]);\n }\n\n return trace;\n };\n\n exports.formatTrace = function (trace) {\n var display = [];\n\n for (var i = 0; i < trace.length; ++i) {\n var row = trace[i];\n display.push((row[4] ? 'new ' : '') + row[3] + ' (' + row[0] + ':' + row[1] + ':' + row[2] + ')');\n }\n\n return display;\n };\n\n exports.callStack = function (slice) {\n // http://code.google.com/p/v8/wiki/JavaScriptStackTraceApi\n var v8 = Error.prepareStackTrace;\n\n Error.prepareStackTrace = function (_, stack) {\n return stack;\n };\n\n var capture = {};\n Error.captureStackTrace(capture, this);\n var stack = capture.stack;\n Error.prepareStackTrace = v8;\n var trace = exports.formatStack(stack);\n return trace.slice(1 + slice);\n };\n\n exports.displayStack = function (slice) {\n var trace = exports.callStack(slice === undefined ? 1 : slice + 1);\n return exports.formatTrace(trace);\n };\n\n exports.abortThrow = false;\n\n exports.abort = function (message, hideStack) {\n if (process.env.NODE_ENV === 'test' || exports.abortThrow === true) {\n throw new Error(message || 'Unknown error');\n }\n\n var stack = '';\n\n if (!hideStack) {\n stack = exports.displayStack(1).join('\\n\\t');\n }\n\n console.log('ABORT: ' + message + '\\n\\t' + stack);\n process.exit(1);\n };\n\n exports.assert = function (condition) {\n if (condition) {\n return;\n }\n\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (args.length === 1 && args[0] instanceof Error) {\n throw args[0];\n }\n\n var msgs = args.filter(function (arg) {\n return arg !== '';\n }).map(function (arg) {\n return typeof arg === 'string' ? arg : arg instanceof Error ? arg.message : exports.stringify(arg);\n });\n throw new Assert.AssertionError({\n message: msgs.join(' ') || 'Unknown error',\n actual: false,\n expected: true,\n operator: '==',\n stackStartFunction: exports.assert\n });\n };\n\n exports.Bench = function () {\n this.ts = 0;\n this.reset();\n };\n\n exports.Bench.prototype.reset = function () {\n this.ts = exports.Bench.now();\n };\n\n exports.Bench.prototype.elapsed = function () {\n return exports.Bench.now() - this.ts;\n };\n\n exports.Bench.now = function () {\n var ts = process.hrtime();\n return ts[0] * 1e3 + ts[1] / 1e6;\n }; // Escape string for Regex construction\n\n\n exports.escapeRegex = function (string) {\n // Escape ^$.*+-?=!:|\\/()[]{},\n return string.replace(/[\\^\\$\\.\\*\\+\\-\\?\\=\\!\\:\\|\\\\\\/\\(\\)\\[\\]\\{\\}\\,]/g, '\\\\$&');\n }; // Base64url (RFC 4648) encode\n\n\n exports.base64urlEncode = function (value, encoding) {\n exports.assert(typeof value === 'string' || Buffer.isBuffer(value), 'value must be string or buffer');\n var buf = Buffer.isBuffer(value) ? value : Buffer.from(value, encoding || 'binary');\n return buf.toString('base64').replace(/\\+/g, '-').replace(/\\//g, '_').replace(/\\=/g, '');\n }; // Base64url (RFC 4648) decode\n\n\n exports.base64urlDecode = function (value, encoding) {\n if (typeof value !== 'string') {\n throw new Error('Value not a string');\n }\n\n if (!/^[\\w\\-]*$/.test(value)) {\n throw new Error('Invalid character');\n }\n\n var buf = Buffer.from(value, 'base64');\n return encoding === 'buffer' ? buf : buf.toString(encoding || 'binary');\n }; // Escape attribute value for use in HTTP header\n\n\n exports.escapeHeaderAttribute = function (attribute) {\n // Allowed value characters: !#$%&'()*+,-./:;<=>?@[]^_`{|}~ and space, a-z, A-Z, 0-9, \\, \"\n exports.assert(/^[ \\w\\!#\\$%&'\\(\\)\\*\\+,\\-\\.\\/\\:;<\\=>\\?@\\[\\]\\^`\\{\\|\\}~\\\"\\\\]*$/.test(attribute), 'Bad attribute value (' + attribute + ')');\n return attribute.replace(/\\\\/g, '\\\\\\\\').replace(/\\\"/g, '\\\\\"'); // Escape quotes and slash\n };\n\n exports.escapeHtml = function (string) {\n return Escape.escapeHtml(string);\n };\n\n exports.escapeJavaScript = function (string) {\n return Escape.escapeJavaScript(string);\n };\n\n exports.escapeJson = function (string) {\n return Escape.escapeJson(string);\n };\n\n exports.once = function (method) {\n if (method._hoekOnce) {\n return method;\n }\n\n var once = false;\n\n var wrapped = function wrapped() {\n if (!once) {\n once = true;\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n method.apply(null, args);\n }\n };\n\n wrapped._hoekOnce = true;\n return wrapped;\n };\n\n exports.isInteger = Number.isSafeInteger;\n\n exports.ignore = function () {};\n\n exports.inherits = Util.inherits;\n exports.format = Util.format;\n\n exports.transform = function (source, transform, options) {\n exports.assert(source === null || source === undefined || (typeof source === 'undefined' ? 'undefined' : _typeof(source)) === 'object' || Array.isArray(source), 'Invalid source object: must be null, undefined, an object, or an array');\n var separator = (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object' && options !== null ? options.separator || '.' : '.';\n\n if (Array.isArray(source)) {\n var results = [];\n\n for (var i = 0; i < source.length; ++i) {\n results.push(exports.transform(source[i], transform, options));\n }\n\n return results;\n }\n\n var result = {};\n var keys = Object.keys(transform);\n\n for (var _i8 = 0; _i8 < keys.length; ++_i8) {\n var key = keys[_i8];\n var path = key.split(separator);\n var sourcePath = transform[key];\n exports.assert(typeof sourcePath === 'string', 'All mappings must be \".\" delineated strings');\n var segment = void 0;\n var res = result;\n\n while (path.length > 1) {\n segment = path.shift();\n\n if (!res[segment]) {\n res[segment] = {};\n }\n\n res = res[segment];\n }\n\n segment = path.shift();\n res[segment] = exports.reach(source, sourcePath, options);\n }\n\n return result;\n };\n\n exports.uniqueFilename = function (path, extension) {\n if (extension) {\n extension = extension[0] !== '.' ? '.' + extension : extension;\n } else {\n extension = '';\n }\n\n path = Path.resolve(path);\n var name = [Date.now(), process.pid, Crypto.randomBytes(8).toString('hex')].join('-') + extension;\n return Path.join(path, name);\n };\n\n exports.stringify = function () {\n try {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return JSON.stringify.apply(null, args);\n } catch (err) {\n return '[Cannot display object: ' + err.message + ']';\n }\n };\n\n exports.shallow = function (source) {\n var target = {};\n var keys = Object.keys(source);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n target[key] = source[key];\n }\n\n return target;\n };\n\n exports.wait = function (timeout) {\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n });\n };\n\n exports.block = function () {\n return new Promise(exports.ignore);\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer, __webpack_require__(7));\n /***/\n },\n /* 1 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports.create = function (key, options) {\n Hoek.assert(typeof key === 'string', 'Invalid reference key:', key);\n var settings = Hoek.clone(options); // options can be reused and modified\n\n var ref = function ref(value, validationOptions) {\n return Hoek.reach(ref.isContext ? validationOptions.context : value, ref.key, settings);\n };\n\n ref.isContext = key[0] === (settings && settings.contextPrefix || '$');\n ref.key = ref.isContext ? key.slice(1) : key;\n ref.path = ref.key.split(settings && settings.separator || '.');\n ref.depth = ref.path.length;\n ref.root = ref.path[0];\n ref.isJoi = true;\n\n ref.toString = function () {\n return (ref.isContext ? 'context:' : 'ref:') + ref.key;\n };\n\n return ref;\n };\n\n exports.isRef = function (ref) {\n return typeof ref === 'function' && ref.isJoi;\n };\n\n exports.push = function (array, ref) {\n if (exports.isRef(ref) && !ref.isContext) {\n array.push(ref.root);\n }\n };\n /***/\n\n },\n /* 2 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Settings = __webpack_require__(11);\n\n var Ref = __webpack_require__(1);\n\n var Errors = __webpack_require__(6);\n\n var Alternatives = null; // Delay-loaded to prevent circular dependencies\n\n var Cast = null; // Declare internals\n\n var internals = {\n Set: __webpack_require__(9)\n };\n internals.defaults = {\n abortEarly: true,\n convert: true,\n allowUnknown: false,\n skipFunctions: false,\n stripUnknown: false,\n language: {},\n presence: 'optional',\n strip: false,\n noDefaults: false,\n escapeHtml: false // context: null\n\n };\n\n module.exports = internals.Any = function () {\n function _class() {\n _classCallCheck(this, _class);\n\n Cast = Cast || __webpack_require__(4);\n this.isJoi = true;\n this._type = 'any';\n this._settings = null;\n this._valids = new internals.Set();\n this._invalids = new internals.Set();\n this._tests = [];\n this._refs = [];\n this._flags = {\n /*\n presence: 'optional', // optional, required, forbidden, ignore\n allowOnly: false,\n allowUnknown: undefined,\n default: undefined,\n forbidden: false,\n encoding: undefined,\n insensitive: false,\n trim: false,\n normalize: undefined, // NFC, NFD, NFKC, NFKD\n case: undefined, // upper, lower\n empty: undefined,\n func: false,\n raw: false\n */\n };\n this._description = null;\n this._unit = null;\n this._notes = [];\n this._tags = [];\n this._examples = [];\n this._meta = [];\n this._inner = {}; // Hash of arrays of immutable objects\n }\n\n _class.prototype._init = function _init() {\n return this;\n };\n\n _class.prototype.createError = function createError(type, context, state, options) {\n var flags = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : this._flags;\n return Errors.create(type, context, state, options, flags);\n };\n\n _class.prototype.createOverrideError = function createOverrideError(type, context, state, options, message, template) {\n return Errors.create(type, context, state, options, this._flags, message, template);\n };\n\n _class.prototype.checkOptions = function checkOptions(options) {\n var Schemas = __webpack_require__(21);\n\n var result = Schemas.options.validate(options);\n\n if (result.error) {\n throw new Error(result.error.details[0].message);\n }\n };\n\n _class.prototype.clone = function clone() {\n var obj = Object.create(Object.getPrototypeOf(this));\n obj.isJoi = true;\n obj._currentJoi = this._currentJoi;\n obj._type = this._type;\n obj._settings = this._settings;\n obj._baseType = this._baseType;\n obj._valids = this._valids.slice();\n obj._invalids = this._invalids.slice();\n obj._tests = this._tests.slice();\n obj._refs = this._refs.slice();\n obj._flags = Hoek.clone(this._flags);\n obj._description = this._description;\n obj._unit = this._unit;\n obj._notes = this._notes.slice();\n obj._tags = this._tags.slice();\n obj._examples = this._examples.slice();\n obj._meta = this._meta.slice();\n obj._inner = {};\n var inners = Object.keys(this._inner);\n\n for (var i = 0; i < inners.length; ++i) {\n var key = inners[i];\n obj._inner[key] = this._inner[key] ? this._inner[key].slice() : null;\n }\n\n return obj;\n };\n\n _class.prototype.concat = function concat(schema) {\n Hoek.assert(schema instanceof internals.Any, 'Invalid schema object');\n Hoek.assert(this._type === 'any' || schema._type === 'any' || schema._type === this._type, 'Cannot merge type', this._type, 'with another type:', schema._type);\n var obj = this.clone();\n\n if (this._type === 'any' && schema._type !== 'any') {\n // Reset values as if we were \"this\"\n var tmpObj = schema.clone();\n var keysToRestore = ['_settings', '_valids', '_invalids', '_tests', '_refs', '_flags', '_description', '_unit', '_notes', '_tags', '_examples', '_meta', '_inner'];\n\n for (var i = 0; i < keysToRestore.length; ++i) {\n tmpObj[keysToRestore[i]] = obj[keysToRestore[i]];\n }\n\n obj = tmpObj;\n }\n\n obj._settings = obj._settings ? Settings.concat(obj._settings, schema._settings) : schema._settings;\n\n obj._valids.merge(schema._valids, schema._invalids);\n\n obj._invalids.merge(schema._invalids, schema._valids);\n\n obj._tests = obj._tests.concat(schema._tests);\n obj._refs = obj._refs.concat(schema._refs);\n Hoek.merge(obj._flags, schema._flags);\n obj._description = schema._description || obj._description;\n obj._unit = schema._unit || obj._unit;\n obj._notes = obj._notes.concat(schema._notes);\n obj._tags = obj._tags.concat(schema._tags);\n obj._examples = obj._examples.concat(schema._examples);\n obj._meta = obj._meta.concat(schema._meta);\n var inners = Object.keys(schema._inner);\n var isObject = obj._type === 'object';\n\n for (var _i = 0; _i < inners.length; ++_i) {\n var key = inners[_i];\n var source = schema._inner[key];\n\n if (source) {\n var target = obj._inner[key];\n\n if (target) {\n if (isObject && key === 'children') {\n var keys = {};\n\n for (var j = 0; j < target.length; ++j) {\n keys[target[j].key] = j;\n }\n\n for (var _j = 0; _j < source.length; ++_j) {\n var sourceKey = source[_j].key;\n\n if (keys[sourceKey] >= 0) {\n target[keys[sourceKey]] = {\n key: sourceKey,\n schema: target[keys[sourceKey]].schema.concat(source[_j].schema)\n };\n } else {\n target.push(source[_j]);\n }\n }\n } else {\n obj._inner[key] = obj._inner[key].concat(source);\n }\n } else {\n obj._inner[key] = source.slice();\n }\n }\n }\n\n return obj;\n };\n\n _class.prototype._test = function _test(name, arg, func, options) {\n var obj = this.clone();\n\n obj._tests.push({\n func: func,\n name: name,\n arg: arg,\n options: options\n });\n\n return obj;\n };\n\n _class.prototype.options = function options(_options) {\n Hoek.assert(!_options.context, 'Cannot override context');\n this.checkOptions(_options);\n var obj = this.clone();\n obj._settings = Settings.concat(obj._settings, _options);\n return obj;\n };\n\n _class.prototype.strict = function strict(isStrict) {\n var obj = this.clone();\n var convert = isStrict === undefined ? false : !isStrict;\n obj._settings = Settings.concat(obj._settings, {\n convert: convert\n });\n return obj;\n };\n\n _class.prototype.raw = function raw(isRaw) {\n var value = isRaw === undefined ? true : isRaw;\n\n if (this._flags.raw === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.raw = value;\n return obj;\n };\n\n _class.prototype.error = function error(err) {\n Hoek.assert(err && (err instanceof Error || typeof err === 'function'), 'Must provide a valid Error object or a function');\n var obj = this.clone();\n obj._flags.error = err;\n return obj;\n };\n\n _class.prototype.allow = function allow() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._invalids.remove(value);\n\n obj._valids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.valid = function valid() {\n var obj = this.allow.apply(this, arguments);\n obj._flags.allowOnly = true;\n return obj;\n };\n\n _class.prototype.invalid = function invalid() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call allow/valid/invalid with undefined');\n\n obj._valids.remove(value);\n\n obj._invalids.add(value, obj._refs);\n }\n\n return obj;\n };\n\n _class.prototype.required = function required() {\n if (this._flags.presence === 'required') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'required';\n return obj;\n };\n\n _class.prototype.optional = function optional() {\n if (this._flags.presence === 'optional') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'optional';\n return obj;\n };\n\n _class.prototype.forbidden = function forbidden() {\n if (this._flags.presence === 'forbidden') {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.presence = 'forbidden';\n return obj;\n };\n\n _class.prototype.strip = function strip() {\n if (this._flags.strip) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.strip = true;\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n\n if (children.length !== 1 || children[0] !== '') {\n root = root ? root + '.' : '';\n var extraChildren = (children[0] === '' ? children.slice(1) : children).map(function (child) {\n return root + child;\n });\n throw new Error('unknown key(s) ' + extraChildren.join(', '));\n }\n\n return this[fn].apply(this, args);\n };\n\n _class.prototype.default = function _default(value, description) {\n if (typeof value === 'function' && !Ref.isRef(value)) {\n if (!value.description && description) {\n value.description = description;\n }\n\n if (!this._flags.func) {\n Hoek.assert(typeof value.description === 'string' && value.description.length > 0, 'description must be provided when default value is a function');\n }\n }\n\n var obj = this.clone();\n obj._flags.default = value;\n Ref.push(obj._refs, value);\n return obj;\n };\n\n _class.prototype.empty = function empty(schema) {\n var obj = this.clone();\n\n if (schema === undefined) {\n delete obj._flags.empty;\n } else {\n obj._flags.empty = Cast.schema(this._currentJoi, schema);\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n Hoek.assert(options && (typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var then = options.hasOwnProperty('then') ? this.concat(Cast.schema(this._currentJoi, options.then)) : undefined;\n var otherwise = options.hasOwnProperty('otherwise') ? this.concat(Cast.schema(this._currentJoi, options.otherwise)) : undefined;\n Alternatives = Alternatives || __webpack_require__(10);\n var alternativeOptions = {\n then: then,\n otherwise: otherwise\n };\n\n if (Object.prototype.hasOwnProperty.call(options, 'is')) {\n alternativeOptions.is = options.is;\n }\n\n var obj = Alternatives.when(condition, alternativeOptions);\n obj._flags.presence = 'ignore';\n obj._baseType = this;\n return obj;\n };\n\n _class.prototype.description = function description(desc) {\n Hoek.assert(desc && typeof desc === 'string', 'Description must be a non-empty string');\n var obj = this.clone();\n obj._description = desc;\n return obj;\n };\n\n _class.prototype.notes = function notes(_notes) {\n Hoek.assert(_notes && (typeof _notes === 'string' || Array.isArray(_notes)), 'Notes must be a non-empty string or array');\n var obj = this.clone();\n obj._notes = obj._notes.concat(_notes);\n return obj;\n };\n\n _class.prototype.tags = function tags(_tags) {\n Hoek.assert(_tags && (typeof _tags === 'string' || Array.isArray(_tags)), 'Tags must be a non-empty string or array');\n var obj = this.clone();\n obj._tags = obj._tags.concat(_tags);\n return obj;\n };\n\n _class.prototype.meta = function meta(_meta) {\n Hoek.assert(_meta !== undefined, 'Meta cannot be undefined');\n var obj = this.clone();\n obj._meta = obj._meta.concat(_meta);\n return obj;\n };\n\n _class.prototype.example = function example() {\n Hoek.assert(arguments.length === 1, 'Missing example');\n var value = arguments.length <= 0 ? undefined : arguments[0];\n var obj = this.clone();\n\n obj._examples.push(value);\n\n return obj;\n };\n\n _class.prototype.unit = function unit(name) {\n Hoek.assert(name && typeof name === 'string', 'Unit name must be a non-empty string');\n var obj = this.clone();\n obj._unit = name;\n return obj;\n };\n\n _class.prototype._prepareEmptyValue = function _prepareEmptyValue(value) {\n if (typeof value === 'string' && this._flags.trim) {\n return value.trim();\n }\n\n return value;\n };\n\n _class.prototype._validate = function _validate(value, state, options, reference) {\n var _this = this;\n\n var originalValue = value; // Setup state and settings\n\n state = state || {\n key: '',\n path: [],\n parent: null,\n reference: reference\n };\n\n if (this._settings) {\n options = Settings.concat(options, this._settings);\n }\n\n var errors = [];\n\n var finish = function finish() {\n var finalValue = void 0;\n\n if (value !== undefined) {\n finalValue = _this._flags.raw ? originalValue : value;\n } else if (options.noDefaults) {\n finalValue = value;\n } else if (Ref.isRef(_this._flags.default)) {\n finalValue = _this._flags.default(state.parent, options);\n } else if (typeof _this._flags.default === 'function' && !(_this._flags.func && !_this._flags.default.description)) {\n var args = void 0;\n\n if (state.parent !== null && _this._flags.default.length > 0) {\n args = [Hoek.clone(state.parent), options];\n }\n\n var defaultValue = internals._try(_this._flags.default, args);\n\n finalValue = defaultValue.value;\n\n if (defaultValue.error) {\n errors.push(_this.createError('any.default', {\n error: defaultValue.error\n }, state, options));\n }\n } else {\n finalValue = Hoek.clone(_this._flags.default);\n }\n\n if (errors.length && typeof _this._flags.error === 'function') {\n var change = _this._flags.error.call(_this, errors);\n\n if (typeof change === 'string') {\n errors = [_this.createOverrideError('override', {\n reason: errors\n }, state, options, change)];\n } else {\n errors = [].concat(change).map(function (err) {\n return err instanceof Error ? err : _this.createOverrideError(err.type || 'override', err.context, state, options, err.message, err.template);\n });\n }\n }\n\n return {\n value: _this._flags.strip ? undefined : finalValue,\n finalValue: finalValue,\n errors: errors.length ? errors : null\n };\n };\n\n if (this._coerce) {\n var coerced = this._coerce.call(this, value, state, options);\n\n if (coerced.errors) {\n value = coerced.value;\n errors = errors.concat(coerced.errors);\n return finish(); // Coerced error always aborts early\n }\n\n value = coerced.value;\n }\n\n if (this._flags.empty && !this._flags.empty._validate(this._prepareEmptyValue(value), null, internals.defaults).errors) {\n value = undefined;\n } // Check presence requirements\n\n\n var presence = this._flags.presence || options.presence;\n\n if (presence === 'optional') {\n if (value === undefined) {\n var isDeepDefault = this._flags.hasOwnProperty('default') && this._flags.default === undefined;\n\n if (isDeepDefault && this._type === 'object') {\n value = {};\n } else {\n return finish();\n }\n }\n } else if (presence === 'required' && value === undefined) {\n errors.push(this.createError('any.required', null, state, options));\n return finish();\n } else if (presence === 'forbidden') {\n if (value === undefined) {\n return finish();\n }\n\n errors.push(this.createError('any.unknown', null, state, options));\n return finish();\n } // Check allowed and denied values using the original value\n\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', {\n value: value,\n invalids: this._invalids.values({\n stripUndefined: true\n })\n }, state, options));\n\n if (options.abortEarly || value === undefined) {\n // No reason to keep validating missing value\n return finish();\n }\n } // Convert value and validate type\n\n\n if (this._base) {\n var base = this._base.call(this, value, state, options);\n\n if (base.errors) {\n value = base.value;\n errors = errors.concat(base.errors);\n return finish(); // Base error always aborts early\n }\n\n if (base.value !== value) {\n value = base.value; // Check allowed and denied values using the converted value\n\n if (this._valids.has(value, state, options, this._flags.insensitive)) {\n return finish();\n }\n\n if (this._invalids.has(value, state, options, this._flags.insensitive)) {\n errors.push(this.createError(value === '' ? 'any.empty' : 'any.invalid', {\n value: value,\n invalids: this._invalids.values({\n stripUndefined: true\n })\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n } // Required values did not match\n\n\n if (this._flags.allowOnly) {\n errors.push(this.createError('any.allowOnly', {\n value: value,\n valids: this._valids.values({\n stripUndefined: true\n })\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } // Validate tests\n\n\n for (var i = 0; i < this._tests.length; ++i) {\n var test = this._tests[i];\n var ret = test.func.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n errors.push(ret);\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n value = ret;\n }\n }\n\n return finish();\n };\n\n _class.prototype._validateWithOptions = function _validateWithOptions(value, options, callback) {\n if (options) {\n this.checkOptions(options);\n }\n\n var settings = Settings.concat(internals.defaults, options);\n\n var result = this._validate(value, null, settings);\n\n var errors = Errors.process(result.errors, value);\n\n if (callback) {\n return callback(errors, result.value);\n }\n\n return {\n error: errors,\n value: result.value,\n then: function then(resolve, reject) {\n if (errors) {\n return Promise.reject(errors).catch(reject);\n }\n\n return Promise.resolve(result.value).then(resolve);\n },\n catch: function _catch(reject) {\n if (errors) {\n return Promise.reject(errors).catch(reject);\n }\n\n return Promise.resolve(result.value);\n }\n };\n };\n\n _class.prototype.validate = function validate(value, options, callback) {\n if (typeof options === 'function') {\n return this._validateWithOptions(value, null, options);\n }\n\n return this._validateWithOptions(value, options, callback);\n };\n\n _class.prototype.describe = function describe() {\n var _this2 = this;\n\n var description = {\n type: this._type\n };\n var flags = Object.keys(this._flags);\n\n if (flags.length) {\n if (['empty', 'default', 'lazy', 'label'].some(function (flag) {\n return _this2._flags.hasOwnProperty(flag);\n })) {\n description.flags = {};\n\n for (var i = 0; i < flags.length; ++i) {\n var flag = flags[i];\n\n if (flag === 'empty') {\n description.flags[flag] = this._flags[flag].describe();\n } else if (flag === 'default') {\n if (Ref.isRef(this._flags[flag])) {\n description.flags[flag] = this._flags[flag].toString();\n } else if (typeof this._flags[flag] === 'function') {\n description.flags[flag] = {\n description: this._flags[flag].description,\n function: this._flags[flag]\n };\n } else {\n description.flags[flag] = this._flags[flag];\n }\n } else if (flag === 'lazy' || flag === 'label') {// We don't want it in the description\n } else {\n description.flags[flag] = this._flags[flag];\n }\n }\n } else {\n description.flags = this._flags;\n }\n }\n\n if (this._settings) {\n description.options = Hoek.clone(this._settings);\n }\n\n if (this._baseType) {\n description.base = this._baseType.describe();\n }\n\n if (this._description) {\n description.description = this._description;\n }\n\n if (this._notes.length) {\n description.notes = this._notes;\n }\n\n if (this._tags.length) {\n description.tags = this._tags;\n }\n\n if (this._meta.length) {\n description.meta = this._meta;\n }\n\n if (this._examples.length) {\n description.examples = this._examples;\n }\n\n if (this._unit) {\n description.unit = this._unit;\n }\n\n var valids = this._valids.values();\n\n if (valids.length) {\n description.valids = valids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n var invalids = this._invalids.values();\n\n if (invalids.length) {\n description.invalids = invalids.map(function (v) {\n return Ref.isRef(v) ? v.toString() : v;\n });\n }\n\n description.rules = [];\n\n for (var _i2 = 0; _i2 < this._tests.length; ++_i2) {\n var validator = this._tests[_i2];\n var item = {\n name: validator.name\n };\n\n if (validator.arg !== void 0) {\n item.arg = Ref.isRef(validator.arg) ? validator.arg.toString() : validator.arg;\n }\n\n var options = validator.options;\n\n if (options) {\n if (options.hasRef) {\n item.arg = {};\n var keys = Object.keys(validator.arg);\n\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var value = validator.arg[key];\n item.arg[key] = Ref.isRef(value) ? value.toString() : value;\n }\n }\n\n if (typeof options.description === 'string') {\n item.description = options.description;\n } else if (typeof options.description === 'function') {\n item.description = options.description(item.arg);\n }\n }\n\n description.rules.push(item);\n }\n\n if (!description.rules.length) {\n delete description.rules;\n }\n\n var label = this._getLabel();\n\n if (label) {\n description.label = label;\n }\n\n return description;\n };\n\n _class.prototype.label = function label(name) {\n Hoek.assert(name && typeof name === 'string', 'Label name must be a non-empty string');\n var obj = this.clone();\n obj._flags.label = name;\n return obj;\n };\n\n _class.prototype._getLabel = function _getLabel(def) {\n return this._flags.label || def;\n };\n\n _createClass(_class, [{\n key: 'schemaType',\n get: function get() {\n return this._type;\n }\n }]);\n\n return _class;\n }();\n\n internals.Any.prototype.isImmutable = true; // Prevents Hoek from deep cloning schema objects\n // Aliases\n\n internals.Any.prototype.only = internals.Any.prototype.equal = internals.Any.prototype.valid;\n internals.Any.prototype.disallow = internals.Any.prototype.not = internals.Any.prototype.invalid;\n internals.Any.prototype.exist = internals.Any.prototype.required;\n\n internals._try = function (fn, args) {\n var err = void 0;\n var result = void 0;\n\n try {\n result = fn.apply(null, args);\n } catch (e) {\n err = e;\n }\n\n return {\n value: result,\n error: err\n };\n };\n /***/\n\n },\n /* 3 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (global) {\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\n /* eslint-disable no-proto */\n var base64 = __webpack_require__(33);\n\n var ieee754 = __webpack_require__(34);\n\n var isArray = __webpack_require__(35);\n\n exports.Buffer = Buffer;\n exports.SlowBuffer = SlowBuffer;\n exports.INSPECT_MAX_BYTES = 50;\n /**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n \n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\n\n Buffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined ? global.TYPED_ARRAY_SUPPORT : typedArraySupport();\n /*\n * Export kMaxLength after typed array support is determined.\n */\n\n exports.kMaxLength = kMaxLength();\n\n function typedArraySupport() {\n try {\n var arr = new Uint8Array(1);\n arr.__proto__ = {\n __proto__: Uint8Array.prototype,\n foo: function foo() {\n return 42;\n }\n };\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0; // ie10 has broken `subarray`\n } catch (e) {\n return false;\n }\n }\n\n function kMaxLength() {\n return Buffer.TYPED_ARRAY_SUPPORT ? 0x7fffffff : 0x3fffffff;\n }\n\n function createBuffer(that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length');\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n\n that.length = length;\n }\n\n return that;\n }\n /**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\n\n function Buffer(arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length);\n } // Common case.\n\n\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error('If encoding is specified then the first argument must be a string');\n }\n\n return allocUnsafe(this, arg);\n }\n\n return from(this, arg, encodingOrOffset, length);\n }\n\n Buffer.poolSize = 8192; // not used by this implementation\n // TODO: Legacy, not needed anymore. Remove in next major version.\n\n Buffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr;\n };\n\n function from(that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number');\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length);\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset);\n }\n\n return fromObject(that, value);\n }\n /**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\n\n\n Buffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length);\n };\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n\n if (typeof Symbol !== 'undefined' && Symbol.species && Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n });\n }\n }\n\n function assertSize(size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number');\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative');\n }\n }\n\n function alloc(that, size, fill, encoding) {\n assertSize(size);\n\n if (size <= 0) {\n return createBuffer(that, size);\n }\n\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string' ? createBuffer(that, size).fill(fill, encoding) : createBuffer(that, size).fill(fill);\n }\n\n return createBuffer(that, size);\n }\n /**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\n\n\n Buffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding);\n };\n\n function allocUnsafe(that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n\n return that;\n }\n /**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\n\n\n Buffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size);\n };\n /**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\n\n\n Buffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size);\n };\n\n function fromString(that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding');\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that;\n }\n\n function fromArrayLike(that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n\n return that;\n }\n\n function fromArrayBuffer(that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds');\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds');\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n\n return that;\n }\n\n function fromObject(that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that;\n }\n\n obj.copy(that, 0, 0, len);\n return that;\n }\n\n if (obj) {\n if (typeof ArrayBuffer !== 'undefined' && obj.buffer instanceof ArrayBuffer || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0);\n }\n\n return fromArrayLike(that, obj);\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data);\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.');\n }\n\n function checked(length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' + 'size: 0x' + kMaxLength().toString(16) + ' bytes');\n }\n\n return length | 0;\n }\n\n function SlowBuffer(length) {\n if (+length != length) {\n // eslint-disable-line eqeqeq\n length = 0;\n }\n\n return Buffer.alloc(+length);\n }\n\n Buffer.isBuffer = function isBuffer(b) {\n return !!(b != null && b._isBuffer);\n };\n\n Buffer.compare = function compare(a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers');\n }\n\n if (a === b) return 0;\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n };\n\n Buffer.isEncoding = function isEncoding(encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true;\n\n default:\n return false;\n }\n };\n\n Buffer.concat = function concat(list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0);\n }\n\n var i;\n\n if (length === undefined) {\n length = 0;\n\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers');\n }\n\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n\n return buffer;\n };\n\n function byteLength(string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length;\n }\n\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' && (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength;\n }\n\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0; // Use a for loop to avoid recursion\n\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len;\n\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length;\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2;\n\n case 'hex':\n return len >>> 1;\n\n case 'base64':\n return base64ToBytes(string).length;\n\n default:\n if (loweredCase) return utf8ToBytes(string).length; // assume utf8\n\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n }\n\n Buffer.byteLength = byteLength;\n\n function slowToString(encoding, start, end) {\n var loweredCase = false; // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n\n if (start === undefined || start < 0) {\n start = 0;\n } // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n\n\n if (start > this.length) {\n return '';\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return '';\n } // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n\n\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return '';\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end);\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end);\n\n case 'ascii':\n return asciiSlice(this, start, end);\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end);\n\n case 'base64':\n return base64Slice(this, start, end);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n } // The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n // Buffer instances.\n\n\n Buffer.prototype._isBuffer = true;\n\n function swap(b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n }\n\n Buffer.prototype.swap16 = function swap16() {\n var len = this.length;\n\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits');\n }\n\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n\n return this;\n };\n\n Buffer.prototype.swap32 = function swap32() {\n var len = this.length;\n\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits');\n }\n\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n\n return this;\n };\n\n Buffer.prototype.swap64 = function swap64() {\n var len = this.length;\n\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits');\n }\n\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n\n return this;\n };\n\n Buffer.prototype.toString = function toString() {\n var length = this.length | 0;\n if (length === 0) return '';\n if (arguments.length === 0) return utf8Slice(this, 0, length);\n return slowToString.apply(this, arguments);\n };\n\n Buffer.prototype.equals = function equals(b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer');\n if (this === b) return true;\n return Buffer.compare(this, b) === 0;\n };\n\n Buffer.prototype.inspect = function inspect() {\n var str = '';\n var max = exports.INSPECT_MAX_BYTES;\n\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n\n return '<Buffer ' + str + '>';\n };\n\n Buffer.prototype.compare = function compare(target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer');\n }\n\n if (start === undefined) {\n start = 0;\n }\n\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n\n if (thisStart === undefined) {\n thisStart = 0;\n }\n\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index');\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0;\n }\n\n if (thisStart >= thisEnd) {\n return -1;\n }\n\n if (start >= end) {\n return 1;\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n if (this === target) return 0;\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break;\n }\n }\n\n if (x < y) return -1;\n if (y < x) return 1;\n return 0;\n }; // Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n // OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n //\n // Arguments:\n // - buffer - a Buffer to search\n // - val - a string, Buffer, or number\n // - byteOffset - an index into `buffer`; will be clamped to an int32\n // - encoding - an optional encoding, relevant is val is a string\n // - dir - true for indexOf, false for lastIndexOf\n\n\n function bidirectionalIndexOf(buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1; // Normalize byteOffset\n\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n\n byteOffset = +byteOffset; // Coerce to Number.\n\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : buffer.length - 1;\n } // Normalize byteOffset: negative offsets start from the end of the buffer\n\n\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n\n if (byteOffset >= buffer.length) {\n if (dir) return -1;else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;else return -1;\n } // Normalize val\n\n\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n } // Finally, search either indexOf (if dir is true) or lastIndexOf\n\n\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1;\n }\n\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir);\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n\n if (Buffer.TYPED_ARRAY_SUPPORT && typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset);\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset);\n }\n }\n\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir);\n }\n\n throw new TypeError('val must be string, number or Buffer');\n }\n\n function arrayIndexOf(arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n\n if (encoding === 'ucs2' || encoding === 'ucs-2' || encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1;\n }\n\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read(buf, i) {\n if (indexSize === 1) {\n return buf[i];\n } else {\n return buf.readUInt16BE(i * indexSize);\n }\n }\n\n var i;\n\n if (dir) {\n var foundIndex = -1;\n\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize;\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break;\n }\n }\n\n if (found) return i;\n }\n }\n\n return -1;\n }\n\n Buffer.prototype.includes = function includes(val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1;\n };\n\n Buffer.prototype.indexOf = function indexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true);\n };\n\n Buffer.prototype.lastIndexOf = function lastIndexOf(val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false);\n };\n\n function hexWrite(buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n\n if (length > remaining) {\n length = remaining;\n }\n } // must be an even number of digits\n\n\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string');\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i;\n buf[offset + i] = parsed;\n }\n\n return i;\n }\n\n function utf8Write(buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n function asciiWrite(buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length);\n }\n\n function latin1Write(buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length);\n }\n\n function base64Write(buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length);\n }\n\n function ucs2Write(buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length);\n }\n\n Buffer.prototype.write = function write(string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0; // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0; // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n } // legacy write(string, encoding, offset, length) - remove in v0.13\n\n } else {\n throw new Error('Buffer.write(string, encoding, offset[, length]) is no longer supported');\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if (string.length > 0 && (length < 0 || offset < 0) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds');\n }\n\n if (!encoding) encoding = 'utf8';\n var loweredCase = false;\n\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length);\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length);\n\n case 'ascii':\n return asciiWrite(this, string, offset, length);\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length);\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length);\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length);\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding);\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n };\n\n Buffer.prototype.toJSON = function toJSON() {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n };\n };\n\n function base64Slice(buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf);\n } else {\n return base64.fromByteArray(buf.slice(start, end));\n }\n }\n\n function utf8Slice(buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n var i = start;\n\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = firstByte > 0xEF ? 4 : firstByte > 0xDF ? 3 : firstByte > 0xBF ? 2 : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n\n break;\n\n case 2:\n secondByte = buf[i + 1];\n\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | secondByte & 0x3F;\n\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | thirdByte & 0x3F;\n\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n\n break;\n\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | fourthByte & 0x3F;\n\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res);\n } // Based on http://stackoverflow.com/a/22747272/680742, the browser with\n // the lowest limit is Chrome, with 0x10000 args.\n // We go 1 magnitude less, for safety\n\n\n var MAX_ARGUMENTS_LENGTH = 0x1000;\n\n function decodeCodePointsArray(codePoints) {\n var len = codePoints.length;\n\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints); // avoid extra slice()\n } // Decode in chunks to avoid \"call stack size exceeded\".\n\n\n var res = '';\n var i = 0;\n\n while (i < len) {\n res += String.fromCharCode.apply(String, codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH));\n }\n\n return res;\n }\n\n function asciiSlice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n\n return ret;\n }\n\n function latin1Slice(buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n\n return ret;\n }\n\n function hexSlice(buf, start, end) {\n var len = buf.length;\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n var out = '';\n\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n\n return out;\n }\n\n function utf16leSlice(buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n\n return res;\n }\n\n Buffer.prototype.slice = function slice(start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n var newBuf;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf;\n };\n /*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\n\n\n function checkOffset(offset, ext, length) {\n if (offset % 1 !== 0 || offset < 0) throw new RangeError('offset is not uint');\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length');\n }\n\n Buffer.prototype.readUIntLE = function readUIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUIntBE = function readUIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val;\n };\n\n Buffer.prototype.readUInt8 = function readUInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset];\n };\n\n Buffer.prototype.readUInt16LE = function readUInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | this[offset + 1] << 8;\n };\n\n Buffer.prototype.readUInt16BE = function readUInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] << 8 | this[offset + 1];\n };\n\n Buffer.prototype.readUInt32LE = function readUInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return (this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16) + this[offset + 3] * 0x1000000;\n };\n\n Buffer.prototype.readUInt32BE = function readUInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] * 0x1000000 + (this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3]);\n };\n\n Buffer.prototype.readIntLE = function readIntLE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var val = this[offset];\n var mul = 1;\n var i = 0;\n\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readIntBE = function readIntBE(offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n\n mul *= 0x80;\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n return val;\n };\n\n Buffer.prototype.readInt8 = function readInt8(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return this[offset];\n return (0xff - this[offset] + 1) * -1;\n };\n\n Buffer.prototype.readInt16LE = function readInt16LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | this[offset + 1] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt16BE = function readInt16BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | this[offset] << 8;\n return val & 0x8000 ? val | 0xFFFF0000 : val;\n };\n\n Buffer.prototype.readInt32LE = function readInt32LE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] | this[offset + 1] << 8 | this[offset + 2] << 16 | this[offset + 3] << 24;\n };\n\n Buffer.prototype.readInt32BE = function readInt32BE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return this[offset] << 24 | this[offset + 1] << 16 | this[offset + 2] << 8 | this[offset + 3];\n };\n\n Buffer.prototype.readFloatLE = function readFloatLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, true, 23, 4);\n };\n\n Buffer.prototype.readFloatBE = function readFloatBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return ieee754.read(this, offset, false, 23, 4);\n };\n\n Buffer.prototype.readDoubleLE = function readDoubleLE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, true, 52, 8);\n };\n\n Buffer.prototype.readDoubleBE = function readDoubleBE(offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return ieee754.read(this, offset, false, 52, 8);\n };\n\n function checkInt(buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance');\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds');\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n }\n\n Buffer.prototype.writeUIntLE = function writeUIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUIntBE = function writeUIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = value / mul & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeUInt8 = function writeUInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = value & 0xff;\n return offset + 1;\n };\n\n function objectWriteUInt16(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & 0xff << 8 * (littleEndian ? i : 1 - i)) >>> (littleEndian ? i : 1 - i) * 8;\n }\n }\n\n Buffer.prototype.writeUInt16LE = function writeUInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeUInt16BE = function writeUInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n };\n\n function objectWriteUInt32(buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = value >>> (littleEndian ? i : 3 - i) * 8 & 0xff;\n }\n }\n\n Buffer.prototype.writeUInt32LE = function writeUInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = value >>> 24;\n this[offset + 2] = value >>> 16;\n this[offset + 1] = value >>> 8;\n this[offset] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeUInt32BE = function writeUInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeIntLE = function writeIntLE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeIntBE = function writeIntBE(value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n\n this[offset + i] = (value / mul >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength;\n };\n\n Buffer.prototype.writeInt8 = function writeInt8(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = value & 0xff;\n return offset + 1;\n };\n\n Buffer.prototype.writeInt16LE = function writeInt16LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeInt16BE = function writeInt16BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 8;\n this[offset + 1] = value & 0xff;\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n\n return offset + 2;\n };\n\n Buffer.prototype.writeInt32LE = function writeInt32LE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value & 0xff;\n this[offset + 1] = value >>> 8;\n this[offset + 2] = value >>> 16;\n this[offset + 3] = value >>> 24;\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n\n return offset + 4;\n };\n\n Buffer.prototype.writeInt32BE = function writeInt32BE(value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = value >>> 24;\n this[offset + 1] = value >>> 16;\n this[offset + 2] = value >>> 8;\n this[offset + 3] = value & 0xff;\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n\n return offset + 4;\n };\n\n function checkIEEE754(buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range');\n if (offset < 0) throw new RangeError('Index out of range');\n }\n\n function writeFloat(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4;\n }\n\n Buffer.prototype.writeFloatLE = function writeFloatLE(value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeFloatBE = function writeFloatBE(value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert);\n };\n\n function writeDouble(buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308);\n }\n\n ieee754.write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8;\n }\n\n Buffer.prototype.writeDoubleLE = function writeDoubleLE(value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert);\n };\n\n Buffer.prototype.writeDoubleBE = function writeDoubleBE(value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert);\n }; // copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\n\n\n Buffer.prototype.copy = function copy(target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start; // Copy 0 bytes; we're done\n\n if (end === start) return 0;\n if (target.length === 0 || this.length === 0) return 0; // Fatal error conditions\n\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds');\n }\n\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds');\n if (end < 0) throw new RangeError('sourceEnd out of bounds'); // Are we oob?\n\n if (end > this.length) end = this.length;\n\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(target, this.subarray(start, start + len), targetStart);\n }\n\n return len;\n }; // Usage:\n // buffer.fill(number[, offset[, end]])\n // buffer.fill(buffer[, offset[, end]])\n // buffer.fill(string[, offset[, end]][, encoding])\n\n\n Buffer.prototype.fill = function fill(val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n\n if (code < 256) {\n val = code;\n }\n }\n\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string');\n }\n\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding);\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n } // Invalid ranges are not set to a default, so can range check early.\n\n\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index');\n }\n\n if (end <= start) {\n return this;\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n if (!val) val = 0;\n var i;\n\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = Buffer.isBuffer(val) ? val : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this;\n }; // HELPER FUNCTIONS\n // ================\n\n\n var INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\n function base64clean(str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, ''); // Node converts strings with length < 2 to ''\n\n if (str.length < 2) return ''; // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n\n return str;\n }\n\n function stringtrim(str) {\n if (str.trim) return str.trim();\n return str.replace(/^\\s+|\\s+$/g, '');\n }\n\n function toHex(n) {\n if (n < 16) return '0' + n.toString(16);\n return n.toString(16);\n }\n\n function utf8ToBytes(string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i); // is surrogate component\n\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue;\n } // valid lead\n\n\n leadSurrogate = codePoint;\n continue;\n } // 2 leads in a row\n\n\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue;\n } // valid surrogate pair\n\n\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null; // encode utf8\n\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break;\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break;\n bytes.push(codePoint >> 0x6 | 0xC0, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break;\n bytes.push(codePoint >> 0xC | 0xE0, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break;\n bytes.push(codePoint >> 0x12 | 0xF0, codePoint >> 0xC & 0x3F | 0x80, codePoint >> 0x6 & 0x3F | 0x80, codePoint & 0x3F | 0x80);\n } else {\n throw new Error('Invalid code point');\n }\n }\n\n return bytes;\n }\n\n function asciiToBytes(str) {\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n\n return byteArray;\n }\n\n function utf16leToBytes(str, units) {\n var c, hi, lo;\n var byteArray = [];\n\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break;\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray;\n }\n\n function base64ToBytes(str) {\n return base64.toByteArray(base64clean(str));\n }\n\n function blitBuffer(src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if (i + offset >= dst.length || i >= src.length) break;\n dst[i + offset] = src[i];\n }\n\n return i;\n }\n\n function isnan(val) {\n return val !== val; // eslint-disable-line no-self-compare\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(5));\n /***/\n },\n /* 4 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var Hoek = __webpack_require__(0);\n\n var Ref = __webpack_require__(1); // Type modules are delay-loaded to prevent circular dependencies\n // Declare internals\n\n\n var internals = {};\n\n exports.schema = function (Joi, config) {\n if (config !== undefined && config !== null && (typeof config === 'undefined' ? 'undefined' : _typeof(config)) === 'object') {\n if (config.isJoi) {\n return config;\n }\n\n if (Array.isArray(config)) {\n return Joi.alternatives().try(config);\n }\n\n if (config instanceof RegExp) {\n return Joi.string().regex(config);\n }\n\n if (config instanceof Date) {\n return Joi.date().valid(config);\n }\n\n return Joi.object().keys(config);\n }\n\n if (typeof config === 'string') {\n return Joi.string().valid(config);\n }\n\n if (typeof config === 'number') {\n return Joi.number().valid(config);\n }\n\n if (typeof config === 'boolean') {\n return Joi.boolean().valid(config);\n }\n\n if (Ref.isRef(config)) {\n return Joi.valid(config);\n }\n\n Hoek.assert(config === null, 'Invalid schema content:', config);\n return Joi.valid(null);\n };\n\n exports.ref = function (id) {\n return Ref.isRef(id) ? id : Ref.create(id);\n };\n /***/\n\n },\n /* 5 */\n\n /***/\n function (module, exports) {\n var g; // This works in non-strict mode\n\n g = function () {\n return this;\n }();\n\n try {\n // This works if eval is allowed (see CSP)\n g = g || Function(\"return this\")() || (1, eval)(\"this\");\n } catch (e) {\n // This works if the window reference is available\n if (typeof window === \"object\") g = window;\n } // g can still be undefined, but nothing to do about it...\n // We return undefined, instead of nothing here, so it's\n // easier to handle this case. if(!global) { ...}\n\n\n module.exports = g;\n /***/\n },\n /* 6 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Language = __webpack_require__(20); // Declare internals\n\n\n var internals = {\n annotations: Symbol('joi-annotations')\n };\n\n internals.stringify = function (value, wrapArrays) {\n var type = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (value === null) {\n return 'null';\n }\n\n if (type === 'string') {\n return value;\n }\n\n if (value instanceof exports.Err || type === 'function' || type === 'symbol') {\n return value.toString();\n }\n\n if (type === 'object') {\n if (Array.isArray(value)) {\n var partial = '';\n\n for (var i = 0; i < value.length; ++i) {\n partial = partial + (partial.length ? ', ' : '') + internals.stringify(value[i], wrapArrays);\n }\n\n return wrapArrays ? '[' + partial + ']' : partial;\n }\n\n return value.toString();\n }\n\n return JSON.stringify(value);\n };\n\n exports.Err = function () {\n function _class(type, context, state, options, flags, message, template) {\n _classCallCheck(this, _class);\n\n this.isJoi = true;\n this.type = type;\n this.context = context || {};\n this.context.key = state.path[state.path.length - 1];\n this.context.label = state.key;\n this.path = state.path;\n this.options = options;\n this.flags = flags;\n this.message = message;\n this.template = template;\n var localized = this.options.language;\n\n if (this.flags.label) {\n this.context.label = this.flags.label;\n } else if (localized && ( // language can be null for arrays exclusion check\n this.context.label === '' || this.context.label === null)) {\n this.context.label = localized.root || Language.errors.root;\n }\n }\n\n _class.prototype.toString = function toString() {\n var _this = this;\n\n if (this.message) {\n return this.message;\n }\n\n var format = void 0;\n\n if (this.template) {\n format = this.template;\n }\n\n var localized = this.options.language;\n format = format || Hoek.reach(localized, this.type) || Hoek.reach(Language.errors, this.type);\n\n if (format === undefined) {\n return 'Error code \"' + this.type + '\" is not defined, your custom type is missing the correct language definition';\n }\n\n var wrapArrays = Hoek.reach(localized, 'messages.wrapArrays');\n\n if (typeof wrapArrays !== 'boolean') {\n wrapArrays = Language.errors.messages.wrapArrays;\n }\n\n if (format === null) {\n var childrenString = internals.stringify(this.context.reason, wrapArrays);\n\n if (wrapArrays) {\n return childrenString.slice(1, -1);\n }\n\n return childrenString;\n }\n\n var hasKey = /\\{\\{\\!?label\\}\\}/.test(format);\n var skipKey = format.length > 2 && format[0] === '!' && format[1] === '!';\n\n if (skipKey) {\n format = format.slice(2);\n }\n\n if (!hasKey && !skipKey) {\n var localizedKey = Hoek.reach(localized, 'key');\n\n if (typeof localizedKey === 'string') {\n format = localizedKey + format;\n } else {\n format = Hoek.reach(Language.errors, 'key') + format;\n }\n }\n\n return format.replace(/\\{\\{(\\!?)([^}]+)\\}\\}/g, function ($0, isSecure, name) {\n var value = Hoek.reach(_this.context, name);\n var normalized = internals.stringify(value, wrapArrays);\n return isSecure && _this.options.escapeHtml ? Hoek.escapeHtml(normalized) : normalized;\n });\n };\n\n return _class;\n }();\n\n exports.create = function (type, context, state, options, flags, message, template) {\n return new exports.Err(type, context, state, options, flags, message, template);\n };\n\n exports.process = function (errors, object) {\n if (!errors || !errors.length) {\n return null;\n } // Construct error\n\n\n var message = '';\n var details = [];\n\n var processErrors = function processErrors(localErrors, parent) {\n for (var i = 0; i < localErrors.length; ++i) {\n var item = localErrors[i];\n\n if (item instanceof Error) {\n return item;\n }\n\n if (item.flags.error && typeof item.flags.error !== 'function') {\n return item.flags.error;\n }\n\n var itemMessage = void 0;\n\n if (parent === undefined) {\n itemMessage = item.toString();\n message = message + (message ? '. ' : '') + itemMessage;\n } // Do not push intermediate errors, we're only interested in leafs\n\n\n if (item.context.reason && item.context.reason.length) {\n var _override = processErrors(item.context.reason, item.path);\n\n if (_override) {\n return _override;\n }\n } else {\n details.push({\n message: itemMessage || item.toString(),\n path: item.path,\n type: item.type,\n context: item.context\n });\n }\n }\n };\n\n var override = processErrors(errors);\n\n if (override) {\n return override;\n }\n\n var error = new Error(message);\n error.isJoi = true;\n error.name = 'ValidationError';\n error.details = details;\n error._object = object;\n error.annotate = internals.annotate;\n return error;\n }; // Inspired by json-stringify-safe\n\n\n internals.safeStringify = function (obj, spaces) {\n return JSON.stringify(obj, internals.serializer(), spaces);\n };\n\n internals.serializer = function () {\n var keys = [];\n var stack = [];\n\n var cycleReplacer = function cycleReplacer(key, value) {\n if (stack[0] === value) {\n return '[Circular ~]';\n }\n\n return '[Circular ~.' + keys.slice(0, stack.indexOf(value)).join('.') + ']';\n };\n\n return function (key, value) {\n if (stack.length > 0) {\n var thisPos = stack.indexOf(this);\n\n if (~thisPos) {\n stack.length = thisPos + 1;\n keys.length = thisPos + 1;\n keys[thisPos] = key;\n } else {\n stack.push(this);\n keys.push(key);\n }\n\n if (~stack.indexOf(value)) {\n value = cycleReplacer.call(this, key, value);\n }\n } else {\n stack.push(value);\n }\n\n if (value) {\n var annotations = value[internals.annotations];\n\n if (annotations) {\n if (Array.isArray(value)) {\n var annotated = [];\n\n for (var i = 0; i < value.length; ++i) {\n if (annotations.errors[i]) {\n annotated.push('_$idx$_' + annotations.errors[i].sort().join(', ') + '_$end$_');\n }\n\n annotated.push(value[i]);\n }\n\n value = annotated;\n } else {\n var errorKeys = Object.keys(annotations.errors);\n\n for (var _i = 0; _i < errorKeys.length; ++_i) {\n var errorKey = errorKeys[_i];\n value[errorKey + '_$key$_' + annotations.errors[errorKey].sort().join(', ') + '_$end$_'] = value[errorKey];\n value[errorKey] = undefined;\n }\n\n var missingKeys = Object.keys(annotations.missing);\n\n for (var _i2 = 0; _i2 < missingKeys.length; ++_i2) {\n var missingKey = missingKeys[_i2];\n value['_$miss$_' + missingKey + '|' + annotations.missing[missingKey] + '_$end$_'] = '__missing__';\n }\n }\n\n return value;\n }\n }\n\n if (value === Infinity || value === -Infinity || Number.isNaN(value) || typeof value === 'function' || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'symbol') {\n return '[' + value.toString() + ']';\n }\n\n return value;\n };\n };\n\n internals.annotate = function (stripColorCodes) {\n var redFgEscape = stripColorCodes ? '' : '\\x1B[31m';\n var redBgEscape = stripColorCodes ? '' : '\\x1B[41m';\n var endColor = stripColorCodes ? '' : '\\x1B[0m';\n\n if (_typeof(this._object) !== 'object') {\n return this.details[0].message;\n }\n\n var obj = Hoek.clone(this._object || {});\n\n for (var i = this.details.length - 1; i >= 0; --i) {\n // Reverse order to process deepest child first\n var pos = i + 1;\n var error = this.details[i];\n var path = error.path;\n var ref = obj;\n\n for (var j = 0;; ++j) {\n var seg = path[j];\n\n if (ref.isImmutable) {\n ref = ref.clone(); // joi schemas are not cloned by hoek, we have to take this extra step\n }\n\n if (j + 1 < path.length && ref[seg] && typeof ref[seg] !== 'string') {\n ref = ref[seg];\n } else {\n var refAnnotations = ref[internals.annotations] = ref[internals.annotations] || {\n errors: {},\n missing: {}\n };\n var value = ref[seg];\n var cacheKey = seg || error.context.label;\n\n if (value !== undefined) {\n refAnnotations.errors[cacheKey] = refAnnotations.errors[cacheKey] || [];\n refAnnotations.errors[cacheKey].push(pos);\n } else {\n refAnnotations.missing[cacheKey] = pos;\n }\n\n break;\n }\n }\n }\n\n var replacers = {\n key: /_\\$key\\$_([, \\d]+)_\\$end\\$_\\\"/g,\n missing: /\\\"_\\$miss\\$_([^\\|]+)\\|(\\d+)_\\$end\\$_\\\"\\: \\\"__missing__\\\"/g,\n arrayIndex: /\\s*\\\"_\\$idx\\$_([, \\d]+)_\\$end\\$_\\\",?\\n(.*)/g,\n specials: /\"\\[(NaN|Symbol.*|-?Infinity|function.*|\\(.*)\\]\"/g\n };\n var message = internals.safeStringify(obj, 2).replace(replacers.key, function ($0, $1) {\n return '\" ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.missing, function ($0, $1, $2) {\n return redBgEscape + '\"' + $1 + '\"' + endColor + redFgEscape + ' [' + $2 + ']: -- missing --' + endColor;\n }).replace(replacers.arrayIndex, function ($0, $1, $2) {\n return '\\n' + $2 + ' ' + redFgEscape + '[' + $1 + ']' + endColor;\n }).replace(replacers.specials, function ($0, $1) {\n return $1;\n });\n message = message + '\\n' + redFgEscape;\n\n for (var _i3 = 0; _i3 < this.details.length; ++_i3) {\n var _pos = _i3 + 1;\n\n message = message + '\\n[' + _pos + '] ' + this.details[_i3].message;\n }\n\n message = message + endColor;\n return message;\n };\n /***/\n\n },\n /* 7 */\n\n /***/\n function (module, exports) {\n // shim for using process in browser\n var process = module.exports = {}; // cached from whatever global is present so that test runners that stub it\n // don't break things. But we need to wrap it in a try catch in case it is\n // wrapped in strict mode code which doesn't define any globals. It's inside a\n // function because try/catches deoptimize in certain engines.\n\n var cachedSetTimeout;\n var cachedClearTimeout;\n\n function defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n }\n\n function defaultClearTimeout() {\n throw new Error('clearTimeout has not been defined');\n }\n\n (function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n })();\n\n function runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n } // if setTimeout wasn't available but was latter defined\n\n\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n }\n\n function runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n } // if clearTimeout wasn't available but was latter defined\n\n\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e) {\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e) {\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n }\n\n var queue = [];\n var draining = false;\n var currentQueue;\n var queueIndex = -1;\n\n function cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n\n draining = false;\n\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n\n if (queue.length) {\n drainQueue();\n }\n }\n\n function drainQueue() {\n if (draining) {\n return;\n }\n\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n var len = queue.length;\n\n while (len) {\n currentQueue = queue;\n queue = [];\n\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n\n queueIndex = -1;\n len = queue.length;\n }\n\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n }\n\n process.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n\n queue.push(new Item(fun, args));\n\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n }; // v8 likes predictible objects\n\n\n function Item(fun, array) {\n this.fun = fun;\n this.array = array;\n }\n\n Item.prototype.run = function () {\n this.fun.apply(null, this.array);\n };\n\n process.title = 'browser';\n process.browser = true;\n process.env = {};\n process.argv = [];\n process.version = ''; // empty string to avoid regexp issues\n\n process.versions = {};\n\n function noop() {}\n\n process.on = noop;\n process.addListener = noop;\n process.once = noop;\n process.off = noop;\n process.removeListener = noop;\n process.removeAllListeners = noop;\n process.emit = noop;\n process.prependListener = noop;\n process.prependOnceListener = noop;\n\n process.listeners = function (name) {\n return [];\n };\n\n process.binding = function (name) {\n throw new Error('process.binding is not supported');\n };\n\n process.cwd = function () {\n return '/';\n };\n\n process.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n };\n\n process.umask = function () {\n return 0;\n };\n /***/\n\n },\n /* 8 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Errors = __webpack_require__(6);\n\n var Lazy = __webpack_require__(26);\n\n var Ref = __webpack_require__(1);\n\n var Settings = __webpack_require__(11); // Declare internals\n\n\n var internals = {\n alternatives: __webpack_require__(10),\n array: __webpack_require__(22),\n boolean: __webpack_require__(24),\n binary: __webpack_require__(23),\n date: __webpack_require__(12),\n func: __webpack_require__(25),\n number: __webpack_require__(27),\n object: __webpack_require__(13),\n string: __webpack_require__(28)\n };\n\n internals.callWithDefaults = function (schema, args) {\n var _schema;\n\n Hoek.assert(this, 'Must be invoked on a Joi instance.');\n\n if (this._defaults) {\n schema = this._defaults(schema);\n }\n\n schema._currentJoi = this;\n return (_schema = schema)._init.apply(_schema, _toConsumableArray(args));\n };\n\n internals.root = function () {\n var any = new Any();\n var root = any.clone();\n Any.prototype._currentJoi = root;\n root._currentJoi = root;\n\n root.any = function () {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n Hoek.assert(args.length === 0, 'Joi.any() does not allow arguments.');\n return internals.callWithDefaults.call(this, any, args);\n };\n\n root.alternatives = root.alt = function () {\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return internals.callWithDefaults.call(this, internals.alternatives, args);\n };\n\n root.array = function () {\n for (var _len3 = arguments.length, args = Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n Hoek.assert(args.length === 0, 'Joi.array() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.array, args);\n };\n\n root.boolean = root.bool = function () {\n for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n Hoek.assert(args.length === 0, 'Joi.boolean() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.boolean, args);\n };\n\n root.binary = function () {\n for (var _len5 = arguments.length, args = Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n Hoek.assert(args.length === 0, 'Joi.binary() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.binary, args);\n };\n\n root.date = function () {\n for (var _len6 = arguments.length, args = Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n Hoek.assert(args.length === 0, 'Joi.date() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.date, args);\n };\n\n root.func = function () {\n for (var _len7 = arguments.length, args = Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n Hoek.assert(args.length === 0, 'Joi.func() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.func, args);\n };\n\n root.number = function () {\n for (var _len8 = arguments.length, args = Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n\n Hoek.assert(args.length === 0, 'Joi.number() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.number, args);\n };\n\n root.object = function () {\n for (var _len9 = arguments.length, args = Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n return internals.callWithDefaults.call(this, internals.object, args);\n };\n\n root.string = function () {\n for (var _len10 = arguments.length, args = Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n\n Hoek.assert(args.length === 0, 'Joi.string() does not allow arguments.');\n return internals.callWithDefaults.call(this, internals.string, args);\n };\n\n root.ref = function () {\n return Ref.create.apply(Ref, arguments);\n };\n\n root.isRef = function (ref) {\n return Ref.isRef(ref);\n };\n\n root.validate = function (value)\n /*, [schema], [options], callback */\n {\n var _ref;\n\n var last = (_ref = (arguments.length <= 1 ? 0 : arguments.length - 1) - 1 + 1, arguments.length <= _ref ? undefined : arguments[_ref]);\n var callback = typeof last === 'function' ? last : null;\n var count = (arguments.length <= 1 ? 0 : arguments.length - 1) - (callback ? 1 : 0);\n\n if (count === 0) {\n return any.validate(value, callback);\n }\n\n var options = count === 2 ? arguments.length <= 2 ? undefined : arguments[2] : {};\n var schema = root.compile(arguments.length <= 1 ? undefined : arguments[1]);\n return schema._validateWithOptions(value, options, callback);\n };\n\n root.describe = function () {\n var schema = arguments.length ? root.compile(arguments.length <= 0 ? undefined : arguments[0]) : any;\n return schema.describe();\n };\n\n root.compile = function (schema) {\n try {\n return Cast.schema(this, schema);\n } catch (err) {\n if (err.hasOwnProperty('path')) {\n err.message = err.message + '(' + err.path + ')';\n }\n\n throw err;\n }\n };\n\n root.assert = function (value, schema, message) {\n root.attempt(value, schema, message);\n };\n\n root.attempt = function (value, schema, message) {\n var result = root.validate(value, schema);\n var error = result.error;\n\n if (error) {\n if (!message) {\n if (typeof error.annotate === 'function') {\n error.message = error.annotate();\n }\n\n throw error;\n }\n\n if (!(message instanceof Error)) {\n if (typeof error.annotate === 'function') {\n error.message = message + ' ' + error.annotate();\n }\n\n throw error;\n }\n\n throw message;\n }\n\n return result.value;\n };\n\n root.reach = function (schema, path) {\n Hoek.assert(schema && schema instanceof Any, 'you must provide a joi schema');\n Hoek.assert(Array.isArray(path) || typeof path === 'string', 'path must be a string or an array of strings');\n\n var reach = function reach(sourceSchema, schemaPath) {\n if (!schemaPath.length) {\n return sourceSchema;\n }\n\n var children = sourceSchema._inner.children;\n\n if (!children) {\n return;\n }\n\n var key = schemaPath.shift();\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n\n if (child.key === key) {\n return reach(child.schema, schemaPath);\n }\n }\n };\n\n var schemaPath = typeof path === 'string' ? path ? path.split('.') : [] : path.slice();\n return reach(schema, schemaPath);\n };\n\n root.lazy = function (fn) {\n return Lazy.set(fn);\n };\n\n root.defaults = function (fn) {\n var _this = this;\n\n Hoek.assert(typeof fn === 'function', 'Defaults must be a function');\n var joi = Object.create(this.any());\n joi = fn(joi);\n Hoek.assert(joi && joi instanceof this.constructor, 'defaults() must return a schema');\n\n _extends(joi, this, joi.clone()); // Re-add the types from `this` but also keep the settings from joi's potential new defaults\n\n\n joi._defaults = function (schema) {\n if (_this._defaults) {\n schema = _this._defaults(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n }\n\n schema = fn(schema);\n Hoek.assert(schema instanceof _this.constructor, 'defaults() must return a schema');\n return schema;\n };\n\n return joi;\n };\n\n root.extend = function () {\n var _this2 = this;\n\n for (var _len11 = arguments.length, args = Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n\n var extensions = Hoek.flatten(args);\n Hoek.assert(extensions.length > 0, 'You need to provide at least one extension');\n this.assert(extensions, root.extensionsSchema);\n var joi = Object.create(this.any());\n\n _extends(joi, this);\n\n var _loop = function _loop(i) {\n var extension = extensions[i];\n\n if (typeof extension === 'function') {\n extension = extension(joi);\n }\n\n _this2.assert(extension, root.extensionSchema);\n\n var base = (extension.base || _this2.any()).clone(); // Cloning because we're going to override language afterwards\n\n\n var ctor = base.constructor;\n\n var type = function (_ctor) {\n _inherits(type, _ctor); // eslint-disable-line no-loop-func\n\n\n function type() {\n _classCallCheck(this, type);\n\n var _this3 = _possibleConstructorReturn(this, _ctor.call(this));\n\n if (extension.base) {\n _extends(_this3, base);\n }\n\n _this3._type = extension.name;\n\n if (extension.language) {\n _this3._settings = Settings.concat(_this3._settings, {\n language: _defineProperty({}, extension.name, extension.language)\n });\n }\n\n return _this3;\n }\n\n return type;\n }(ctor);\n\n if (extension.coerce) {\n type.prototype._coerce = function (value, state, options) {\n if (ctor.prototype._coerce) {\n var baseRet = ctor.prototype._coerce.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.coerce.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.pre) {\n type.prototype._base = function (value, state, options) {\n if (ctor.prototype._base) {\n var baseRet = ctor.prototype._base.call(this, value, state, options);\n\n if (baseRet.errors) {\n return baseRet;\n }\n\n value = baseRet.value;\n }\n\n var ret = extension.pre.call(this, value, state, options);\n\n if (ret instanceof Errors.Err) {\n return {\n value: value,\n errors: ret\n };\n }\n\n return {\n value: ret\n };\n };\n }\n\n if (extension.rules) {\n var _loop2 = function _loop2(j) {\n var rule = extension.rules[j];\n var ruleArgs = rule.params ? rule.params instanceof Any ? rule.params._inner.children.map(function (k) {\n return k.key;\n }) : Object.keys(rule.params) : [];\n var validateArgs = rule.params ? Cast.schema(_this2, rule.params) : null;\n\n type.prototype[rule.name] = function () {\n for (var _len12 = arguments.length, rArgs = Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n rArgs[_key12] = arguments[_key12];\n } // eslint-disable-line no-loop-func\n\n\n if (rArgs.length > ruleArgs.length) {\n throw new Error('Unexpected number of arguments');\n }\n\n var hasRef = false;\n var arg = {};\n\n for (var k = 0; k < ruleArgs.length; ++k) {\n arg[ruleArgs[k]] = rArgs[k];\n\n if (!hasRef && Ref.isRef(rArgs[k])) {\n hasRef = true;\n }\n }\n\n if (validateArgs) {\n arg = joi.attempt(arg, validateArgs);\n }\n\n var schema = void 0;\n\n if (rule.validate) {\n var validate = function validate(value, state, options) {\n return rule.validate.call(this, arg, value, state, options);\n };\n\n schema = this._test(rule.name, arg, validate, {\n description: rule.description,\n hasRef: hasRef\n });\n } else {\n schema = this.clone();\n }\n\n if (rule.setup) {\n var newSchema = rule.setup.call(schema, arg);\n\n if (newSchema !== undefined) {\n Hoek.assert(newSchema instanceof Any, 'Setup of extension Joi.' + this._type + '().' + rule.name + '() must return undefined or a Joi object');\n schema = newSchema;\n }\n }\n\n return schema;\n };\n };\n\n for (var j = 0; j < extension.rules.length; ++j) {\n _loop2(j);\n }\n }\n\n if (extension.describe) {\n type.prototype.describe = function () {\n var description = ctor.prototype.describe.call(this);\n return extension.describe.call(this, description);\n };\n }\n\n var instance = new type();\n\n joi[extension.name] = function () {\n for (var _len13 = arguments.length, extArgs = Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n extArgs[_key13] = arguments[_key13];\n }\n\n return internals.callWithDefaults.call(this, instance, extArgs);\n };\n };\n\n for (var i = 0; i < extensions.length; ++i) {\n _loop(i);\n }\n\n return joi;\n };\n\n root.extensionSchema = internals.object.keys({\n base: internals.object.type(Any, 'Joi object'),\n name: internals.string.required(),\n coerce: internals.func.arity(3),\n pre: internals.func.arity(3),\n language: internals.object,\n describe: internals.func.arity(1),\n rules: internals.array.items(internals.object.keys({\n name: internals.string.required(),\n setup: internals.func.arity(1),\n validate: internals.func.arity(4),\n params: [internals.object.pattern(/.*/, internals.object.type(Any, 'Joi object')), internals.object.type(internals.object.constructor, 'Joi object')],\n description: [internals.string, internals.func.arity(1)]\n }).or('setup', 'validate'))\n }).strict();\n root.extensionsSchema = internals.array.items([internals.object, internals.func.arity(1)]).strict();\n root.version = __webpack_require__(36).version;\n return root;\n };\n\n module.exports = internals.root();\n /***/\n },\n /* 9 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n var Ref = __webpack_require__(1);\n\n var internals = {};\n\n internals.extendedCheckForValue = function (value, insensitive) {\n var valueType = typeof value === 'undefined' ? 'undefined' : _typeof(value);\n\n if (valueType === 'object') {\n if (value instanceof Date) {\n return function (item) {\n return item instanceof Date && value.getTime() === item.getTime();\n };\n }\n\n if (Buffer.isBuffer(value)) {\n return function (item) {\n return Buffer.isBuffer(item) && value.length === item.length && value.toString('binary') === item.toString('binary');\n };\n }\n } else if (insensitive && valueType === 'string') {\n var lowercaseValue = value.toLowerCase();\n return function (item) {\n return typeof item === 'string' && lowercaseValue === item.toLowerCase();\n };\n }\n\n return null;\n };\n\n module.exports = function () {\n function InternalSet(from) {\n _classCallCheck(this, InternalSet);\n\n this._set = new Set(from);\n this._hasRef = false;\n }\n\n InternalSet.prototype.add = function add(value, refs) {\n var isRef = Ref.isRef(value);\n\n if (!isRef && this.has(value, null, null, false)) {\n return this;\n }\n\n if (refs !== undefined) {\n // If it's a merge, we don't have any refs\n Ref.push(refs, value);\n }\n\n this._set.add(value);\n\n this._hasRef |= isRef;\n return this;\n };\n\n InternalSet.prototype.merge = function merge(add, remove) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = add._set[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var item = _step.value;\n this.add(item);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = remove._set[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _item = _step2.value;\n this.remove(_item);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n\n return this;\n };\n\n InternalSet.prototype.remove = function remove(value) {\n this._set.delete(value);\n\n return this;\n };\n\n InternalSet.prototype.has = function has(value, state, options, insensitive) {\n if (!this._set.size) {\n return false;\n }\n\n var hasValue = this._set.has(value);\n\n if (hasValue) {\n return hasValue;\n }\n\n var extendedCheck = internals.extendedCheckForValue(value, insensitive);\n\n if (!extendedCheck) {\n if (state && this._hasRef) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = this._set[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var item = _step3.value;\n\n if (Ref.isRef(item)) {\n item = item(state.reference || state.parent, options);\n\n if (value === item || Array.isArray(item) && item.includes(value)) {\n return true;\n }\n }\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n\n return false;\n }\n\n return this._has(value, state, options, extendedCheck);\n };\n\n InternalSet.prototype._has = function _has(value, state, options, check) {\n var checkRef = !!(state && this._hasRef);\n\n var isReallyEqual = function isReallyEqual(item) {\n if (value === item) {\n return true;\n }\n\n return check(item);\n };\n\n var _iteratorNormalCompletion4 = true;\n var _didIteratorError4 = false;\n var _iteratorError4 = undefined;\n\n try {\n for (var _iterator4 = this._set[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {\n var item = _step4.value;\n\n if (checkRef && Ref.isRef(item)) {\n // Only resolve references if there is a state, otherwise it's a merge\n item = item(state.reference || state.parent, options);\n\n if (Array.isArray(item)) {\n if (item.find(isReallyEqual)) {\n return true;\n }\n\n continue;\n }\n }\n\n if (isReallyEqual(item)) {\n return true;\n }\n }\n } catch (err) {\n _didIteratorError4 = true;\n _iteratorError4 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion4 && _iterator4.return) {\n _iterator4.return();\n }\n } finally {\n if (_didIteratorError4) {\n throw _iteratorError4;\n }\n }\n }\n\n return false;\n };\n\n InternalSet.prototype.values = function values(options) {\n if (options && options.stripUndefined) {\n var values = [];\n var _iteratorNormalCompletion5 = true;\n var _didIteratorError5 = false;\n var _iteratorError5 = undefined;\n\n try {\n for (var _iterator5 = this._set[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {\n var item = _step5.value;\n\n if (item !== undefined) {\n values.push(item);\n }\n }\n } catch (err) {\n _didIteratorError5 = true;\n _iteratorError5 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion5 && _iterator5.return) {\n _iterator5.return();\n }\n } finally {\n if (_didIteratorError5) {\n throw _iteratorError5;\n }\n }\n }\n\n return values;\n }\n\n return Array.from(this._set);\n };\n\n InternalSet.prototype.slice = function slice() {\n var set = new InternalSet(this._set);\n set._hasRef = this._hasRef;\n return set;\n };\n\n InternalSet.prototype.concat = function concat(source) {\n var set = new InternalSet([].concat(_toConsumableArray(this._set), _toConsumableArray(source._set)));\n set._hasRef = !!(this._hasRef | source._hasRef);\n return set;\n };\n\n return InternalSet;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 10 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Alternatives = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'alternatives';\n\n _this._invalids.remove(null);\n\n _this._inner.matches = [];\n return _this;\n }\n\n _class.prototype._init = function _init() {\n return arguments.length ? this.try.apply(this, arguments) : this;\n };\n\n _class.prototype._base = function _base(value, state, options) {\n var errors = [];\n var il = this._inner.matches.length;\n var baseType = this._baseType;\n\n for (var i = 0; i < il; ++i) {\n var item = this._inner.matches[i];\n\n if (!item.schema) {\n var schema = item.peek || item.is;\n var input = item.is ? item.ref(state.reference || state.parent, options) : value;\n\n var failed = schema._validate(input, null, options, state.parent).errors;\n\n if (failed) {\n if (item.otherwise) {\n return item.otherwise._validate(value, state, options);\n }\n } else if (item.then) {\n return item.then._validate(value, state, options);\n }\n\n if (i === il - 1 && baseType) {\n return baseType._validate(value, state, options);\n }\n\n continue;\n }\n\n var result = item.schema._validate(value, state, options);\n\n if (!result.errors) {\n // Found a valid match\n return result;\n }\n\n errors = errors.concat(result.errors);\n }\n\n if (errors.length) {\n return {\n errors: this.createError('alternatives.child', {\n reason: errors\n }, state, options)\n };\n }\n\n return {\n errors: this.createError('alternatives.base', null, state, options)\n };\n };\n\n _class.prototype.try = function _try() {\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n schemas = Hoek.flatten(schemas);\n Hoek.assert(schemas.length, 'Cannot add other alternatives without at least one schema');\n var obj = this.clone();\n\n for (var i = 0; i < schemas.length; ++i) {\n var cast = Cast.schema(this._currentJoi, schemas[i]);\n\n if (cast._refs.length) {\n obj._refs = obj._refs.concat(cast._refs);\n }\n\n obj._inner.matches.push({\n schema: cast\n });\n }\n\n return obj;\n };\n\n _class.prototype.when = function when(condition, options) {\n var schemaCondition = false;\n Hoek.assert(Ref.isRef(condition) || typeof condition === 'string' || (schemaCondition = condition instanceof Any), 'Invalid condition:', condition);\n Hoek.assert(options, 'Missing options');\n Hoek.assert((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object', 'Invalid options');\n\n if (schemaCondition) {\n Hoek.assert(!options.hasOwnProperty('is'), '\"is\" can not be used with a schema condition');\n } else {\n Hoek.assert(options.hasOwnProperty('is'), 'Missing \"is\" directive');\n }\n\n Hoek.assert(options.then !== undefined || options.otherwise !== undefined, 'options must have at least one of \"then\" or \"otherwise\"');\n var obj = this.clone();\n var is = void 0;\n\n if (!schemaCondition) {\n is = Cast.schema(this._currentJoi, options.is);\n\n if (options.is === null || !(Ref.isRef(options.is) || options.is instanceof Any)) {\n // Only apply required if this wasn't already a schema or a ref, we'll suppose people know what they're doing\n is = is.required();\n }\n }\n\n var item = {\n ref: schemaCondition ? null : Cast.ref(condition),\n peek: schemaCondition ? condition : null,\n is: is,\n then: options.then !== undefined ? Cast.schema(this._currentJoi, options.then) : undefined,\n otherwise: options.otherwise !== undefined ? Cast.schema(this._currentJoi, options.otherwise) : undefined\n };\n\n if (obj._baseType) {\n item.then = item.then && obj._baseType.concat(item.then);\n item.otherwise = item.otherwise && obj._baseType.concat(item.otherwise);\n }\n\n if (!schemaCondition) {\n Ref.push(obj._refs, item.ref);\n obj._refs = obj._refs.concat(item.is._refs);\n }\n\n if (item.then && item.then._refs) {\n obj._refs = obj._refs.concat(item.then._refs);\n }\n\n if (item.otherwise && item.otherwise._refs) {\n obj._refs = obj._refs.concat(item.otherwise._refs);\n }\n\n obj._inner.matches.push(item);\n\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n var alternatives = [];\n\n for (var i = 0; i < this._inner.matches.length; ++i) {\n var item = this._inner.matches[i];\n\n if (item.schema) {\n // try()\n alternatives.push(item.schema.describe());\n } else {\n // when()\n var when = item.is ? {\n ref: item.ref.toString(),\n is: item.is.describe()\n } : {\n peek: item.peek.describe()\n };\n\n if (item.then) {\n when.then = item.then.describe();\n }\n\n if (item.otherwise) {\n when.otherwise = item.otherwise.describe();\n }\n\n alternatives.push(when);\n }\n }\n\n description.alternatives = alternatives;\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Alternatives();\n /***/\n },\n /* 11 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports.concat = function (target, source) {\n if (!source) {\n return target;\n }\n\n var obj = _extends({}, target);\n\n var sKeys = Object.keys(source);\n\n for (var i = 0; i < sKeys.length; ++i) {\n var key = sKeys[i];\n\n if (key !== 'language' || !obj.hasOwnProperty(key)) {\n obj[key] = source[key];\n } else {\n obj[key] = Hoek.applyToDefaults(obj[key], source[key]);\n }\n }\n\n return obj;\n };\n /***/\n\n },\n /* 12 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n internals.isoDate = /^(?:[-+]\\d{2})?(?:\\d{4}(?!\\d{2}\\b))(?:(-?)(?:(?:0[1-9]|1[0-2])(?:\\1(?:[12]\\d|0[1-9]|3[01]))?|W(?:[0-4]\\d|5[0-2])(?:-?[1-7])?|(?:00[1-9]|0[1-9]\\d|[12]\\d{2}|3(?:[0-5]\\d|6[1-6])))(?![T]$|[T][\\d]+Z$)(?:[T\\s](?:(?:(?:[01]\\d|2[0-3])(?:(:?)[0-5]\\d)?|24\\:?00)(?:[.,]\\d+(?!:))?)(?:\\2[0-5]\\d(?:[.,]\\d+)?)?(?:[Z]|(?:[+-])(?:[01]\\d|2[0-3])(?::?[0-5]\\d)?)?)?)?$/;\n internals.invalidDate = new Date('');\n\n internals.isIsoDate = function () {\n var isoString = internals.isoDate.toString();\n return function (date) {\n return date && date.toString() === isoString;\n };\n }();\n\n internals.Date = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'date';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: options.convert && internals.Date.toDate(value, this._flags.format, this._flags.timestamp, this._flags.multiplier) || value\n };\n\n if (result.value instanceof Date && !isNaN(result.value.getTime())) {\n result.errors = null;\n } else if (!options.convert) {\n result.errors = this.createError('date.strict', null, state, options);\n } else {\n var type = void 0;\n\n if (internals.isIsoDate(this._flags.format)) {\n type = 'isoDate';\n } else if (this._flags.timestamp) {\n type = 'timestamp.' + this._flags.timestamp;\n } else {\n type = 'base';\n }\n\n result.errors = this.createError('date.' + type, null, state, options);\n }\n\n return result;\n };\n\n _class.toDate = function toDate(value, format, timestamp, multiplier) {\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'string' || typeof value === 'number' && !isNaN(value) && isFinite(value)) {\n if (typeof value === 'string' && /^[+-]?\\d+(\\.\\d+)?$/.test(value)) {\n value = parseFloat(value);\n }\n\n var date = void 0;\n\n if (format && internals.isIsoDate(format)) {\n date = format.test(value) ? new Date(value) : internals.invalidDate;\n } else if (timestamp && multiplier) {\n date = /^\\s*$/.test(value) ? internals.invalidDate : new Date(value * multiplier);\n } else {\n date = new Date(value);\n }\n\n if (!isNaN(date.getTime())) {\n return date;\n }\n }\n\n return null;\n };\n\n _class.prototype.iso = function iso() {\n if (this._flags.format === internals.isoDate) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.format = internals.isoDate;\n return obj;\n };\n\n _class.prototype.timestamp = function timestamp() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'javascript';\n var allowed = ['javascript', 'unix'];\n Hoek.assert(allowed.includes(type), '\"type\" must be one of \"' + allowed.join('\", \"') + '\"');\n\n if (this._flags.timestamp === type) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.timestamp = type;\n obj._flags.multiplier = type === 'unix' ? 1000 : 1;\n return obj;\n };\n\n _class.prototype._isIsoDate = function _isIsoDate(value) {\n return internals.isoDate.test(value);\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (date) {\n var isNow = date === 'now';\n var isRef = Ref.isRef(date);\n\n if (!isNow && !isRef) {\n date = internals.Date.toDate(date);\n }\n\n Hoek.assert(date, 'Invalid date format');\n return this._test(type, date, function (value, state, options) {\n var compareTo = void 0;\n\n if (isNow) {\n compareTo = Date.now();\n } else if (isRef) {\n compareTo = internals.Date.toDate(date(state.reference || state.parent, options));\n\n if (!compareTo) {\n return this.createError('date.ref', {\n ref: date.key\n }, state, options);\n }\n\n compareTo = compareTo.getTime();\n } else {\n compareTo = date.getTime();\n }\n\n if (compare(value.getTime(), compareTo)) {\n return value;\n }\n\n return this.createError('date.' + type, {\n limit: new Date(compareTo)\n }, state, options);\n });\n };\n };\n\n internals.Date.prototype.min = internals.compare('min', function (value, date) {\n return value >= date;\n });\n internals.Date.prototype.max = internals.compare('max', function (value, date) {\n return value <= date;\n });\n internals.Date.prototype.greater = internals.compare('greater', function (value, date) {\n return value > date;\n });\n internals.Date.prototype.less = internals.compare('less', function (value, date) {\n return value < date;\n });\n module.exports = new internals.Date();\n /***/\n },\n /* 13 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var Topo = __webpack_require__(31);\n\n var Any = __webpack_require__(2);\n\n var Errors = __webpack_require__(6);\n\n var Cast = __webpack_require__(4); // Declare internals\n\n\n var internals = {};\n\n internals.Object = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'object';\n _this._inner.children = null;\n _this._inner.renames = [];\n _this._inner.dependencies = [];\n _this._inner.patterns = [];\n return _this;\n }\n\n _class.prototype._init = function _init() {\n return arguments.length ? this.keys.apply(this, arguments) : this;\n };\n\n _class.prototype._base = function _base(value, state, options) {\n var target = value;\n var errors = [];\n\n var finish = function finish() {\n return {\n value: target,\n errors: errors.length ? errors : null\n };\n };\n\n if (typeof value === 'string' && options.convert) {\n value = internals.safeParse(value);\n }\n\n var type = this._flags.func ? 'function' : 'object';\n\n if (!value || (typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== type || Array.isArray(value)) {\n errors.push(this.createError(type + '.base', null, state, options));\n return finish();\n } // Skip if there are no other rules to test\n\n\n if (!this._inner.renames.length && !this._inner.dependencies.length && !this._inner.children && // null allows any keys\n !this._inner.patterns.length) {\n target = value;\n return finish();\n } // Ensure target is a local copy (parsed) or shallow copy\n\n\n if (target === value) {\n if (type === 'object') {\n target = Object.create(Object.getPrototypeOf(value));\n } else {\n target = function target() {\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return value.apply(this, args);\n };\n\n target.prototype = Hoek.clone(value.prototype);\n }\n\n var valueKeys = Object.keys(value);\n\n for (var i = 0; i < valueKeys.length; ++i) {\n target[valueKeys[i]] = value[valueKeys[i]];\n }\n } else {\n target = value;\n } // Rename keys\n\n\n var renamed = {};\n\n for (var _i = 0; _i < this._inner.renames.length; ++_i) {\n var rename = this._inner.renames[_i];\n\n if (rename.isRegExp) {\n var targetKeys = Object.keys(target);\n var matchedTargetKeys = [];\n\n for (var j = 0; j < targetKeys.length; ++j) {\n if (rename.from.test(targetKeys[j])) {\n matchedTargetKeys.push(targetKeys[j]);\n }\n }\n\n var allUndefined = matchedTargetKeys.every(function (key) {\n return target[key] === undefined;\n });\n\n if (rename.options.ignoreUndefined && allUndefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.multiple', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.regex.override', {\n from: matchedTargetKeys,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (allUndefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[matchedTargetKeys[matchedTargetKeys.length - 1]];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n for (var _j = 0; _j < matchedTargetKeys.length; ++_j) {\n delete target[matchedTargetKeys[_j]];\n }\n }\n } else {\n if (rename.options.ignoreUndefined && target[rename.from] === undefined) {\n continue;\n }\n\n if (!rename.options.multiple && renamed[rename.to]) {\n errors.push(this.createError('object.rename.multiple', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (Object.prototype.hasOwnProperty.call(target, rename.to) && !rename.options.override && !renamed[rename.to]) {\n errors.push(this.createError('object.rename.override', {\n from: rename.from,\n to: rename.to\n }, state, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n if (target[rename.from] === undefined) {\n delete target[rename.to];\n } else {\n target[rename.to] = target[rename.from];\n }\n\n renamed[rename.to] = true;\n\n if (!rename.options.alias) {\n delete target[rename.from];\n }\n }\n } // Validate schema\n\n\n if (!this._inner.children && // null allows any keys\n !this._inner.patterns.length && !this._inner.dependencies.length) {\n return finish();\n }\n\n var unprocessed = new Set(Object.keys(target));\n\n if (this._inner.children) {\n var stripProps = [];\n\n for (var _i2 = 0; _i2 < this._inner.children.length; ++_i2) {\n var child = this._inner.children[_i2];\n var key = child.key;\n var item = target[key];\n unprocessed.delete(key);\n var localState = {\n key: key,\n path: state.path.concat(key),\n parent: target,\n reference: state.reference\n };\n\n var result = child.schema._validate(item, localState, options);\n\n if (result.errors) {\n errors.push(this.createError('object.child', {\n key: key,\n child: child.schema._getLabel(key),\n reason: result.errors\n }, localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n } else {\n if (child.schema._flags.strip || result.value === undefined && result.value !== item) {\n stripProps.push(key);\n target[key] = result.finalValue;\n } else if (result.value !== undefined) {\n target[key] = result.value;\n }\n }\n }\n\n for (var _i3 = 0; _i3 < stripProps.length; ++_i3) {\n delete target[stripProps[_i3]];\n }\n } // Unknown keys\n\n\n if (unprocessed.size && this._inner.patterns.length) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = unprocessed[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var _key2 = _step.value;\n var _localState = {\n key: _key2,\n path: state.path.concat(_key2),\n parent: target,\n reference: state.reference\n };\n var _item = target[_key2];\n\n for (var _i4 = 0; _i4 < this._inner.patterns.length; ++_i4) {\n var pattern = this._inner.patterns[_i4];\n\n if (pattern.regex ? pattern.regex.test(_key2) : !pattern.schema.validate(_key2).error) {\n unprocessed.delete(_key2);\n\n var _result = pattern.rule._validate(_item, _localState, options);\n\n if (_result.errors) {\n errors.push(this.createError('object.child', {\n key: _key2,\n child: pattern.rule._getLabel(_key2),\n reason: _result.errors\n }, _localState, options));\n\n if (options.abortEarly) {\n return finish();\n }\n }\n\n target[_key2] = _result.value;\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n\n if (unprocessed.size && (this._inner.children || this._inner.patterns.length)) {\n if (options.stripUnknown && this._flags.allowUnknown !== true || options.skipFunctions) {\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.objects : false;\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = unprocessed[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var _key3 = _step2.value;\n\n if (stripUnknown) {\n delete target[_key3];\n unprocessed.delete(_key3);\n } else if (typeof target[_key3] === 'function') {\n unprocessed.delete(_key3);\n }\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n }\n\n if (this._flags.allowUnknown !== undefined ? !this._flags.allowUnknown : !options.allowUnknown) {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = unprocessed[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var unprocessedKey = _step3.value;\n errors.push(this.createError('object.allowUnknown', {\n child: unprocessedKey\n }, {\n key: unprocessedKey,\n path: state.path.concat(unprocessedKey)\n }, options, {}));\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n }\n } // Validate dependencies\n\n\n for (var _i5 = 0; _i5 < this._inner.dependencies.length; ++_i5) {\n var dep = this._inner.dependencies[_i5];\n var err = internals[dep.type].call(this, dep.key !== null && target[dep.key], dep.peers, target, {\n key: dep.key,\n path: dep.key === null ? state.path : state.path.concat(dep.key)\n }, options);\n\n if (err instanceof Errors.Err) {\n errors.push(err);\n\n if (options.abortEarly) {\n return finish();\n }\n }\n }\n\n return finish();\n };\n\n _class.prototype.keys = function keys(schema) {\n Hoek.assert(schema === null || schema === undefined || (typeof schema === 'undefined' ? 'undefined' : _typeof(schema)) === 'object', 'Object schema must be a valid object');\n Hoek.assert(!schema || !(schema instanceof Any), 'Object schema cannot be a joi schema');\n var obj = this.clone();\n\n if (!schema) {\n obj._inner.children = null;\n return obj;\n }\n\n var children = Object.keys(schema);\n\n if (!children.length) {\n obj._inner.children = [];\n return obj;\n }\n\n var topo = new Topo();\n\n if (obj._inner.children) {\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i]; // Only add the key if we are not going to replace it later\n\n if (!children.includes(child.key)) {\n topo.add(child, {\n after: child._refs,\n group: child.key\n });\n }\n }\n }\n\n for (var _i6 = 0; _i6 < children.length; ++_i6) {\n var key = children[_i6];\n var _child = schema[key];\n\n try {\n var cast = Cast.schema(this._currentJoi, _child);\n topo.add({\n key: key,\n schema: cast\n }, {\n after: cast._refs,\n group: key\n });\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = key + '.' + castErr.path;\n } else {\n castErr.path = key;\n }\n\n throw castErr;\n }\n }\n\n obj._inner.children = topo.nodes;\n return obj;\n };\n\n _class.prototype.append = function append(schema) {\n // Skip any changes\n if (schema === null || schema === undefined || Object.keys(schema).length === 0) {\n return this;\n }\n\n return this.keys(schema);\n };\n\n _class.prototype.unknown = function unknown(allow) {\n var value = allow !== false;\n\n if (this._flags.allowUnknown === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.allowUnknown = value;\n return obj;\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (Object.keys(value).length === limit) {\n return value;\n }\n\n return this.createError('object.length', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (Object.keys(value).length >= limit) {\n return value;\n }\n\n return this.createError('object.min', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (Object.keys(value).length <= limit) {\n return value;\n }\n\n return this.createError('object.max', {\n limit: limit\n }, state, options);\n });\n };\n\n _class.prototype.pattern = function pattern(_pattern, schema) {\n var isRegExp = _pattern instanceof RegExp;\n Hoek.assert(isRegExp || _pattern instanceof Any, 'pattern must be a regex or schema');\n Hoek.assert(schema !== undefined, 'Invalid rule');\n\n if (isRegExp) {\n _pattern = new RegExp(_pattern.source, _pattern.ignoreCase ? 'i' : undefined); // Future version should break this and forbid unsupported regex flags\n }\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var obj = this.clone();\n\n if (isRegExp) {\n obj._inner.patterns.push({\n regex: _pattern,\n rule: schema\n });\n } else {\n obj._inner.patterns.push({\n schema: _pattern,\n rule: schema\n });\n }\n\n return obj;\n };\n\n _class.prototype.schema = function schema() {\n return this._test('schema', null, function (value, state, options) {\n if (value instanceof Any) {\n return value;\n }\n\n return this.createError('object.schema', null, state, options);\n });\n };\n\n _class.prototype.with = function _with(key, peers) {\n Hoek.assert(arguments.length === 2, 'Invalid number of arguments, expected 2.');\n return this._dependency('with', key, peers);\n };\n\n _class.prototype.without = function without(key, peers) {\n Hoek.assert(arguments.length === 2, 'Invalid number of arguments, expected 2.');\n return this._dependency('without', key, peers);\n };\n\n _class.prototype.xor = function xor() {\n for (var _len2 = arguments.length, peers = Array(_len2), _key4 = 0; _key4 < _len2; _key4++) {\n peers[_key4] = arguments[_key4];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('xor', null, peers);\n };\n\n _class.prototype.or = function or() {\n for (var _len3 = arguments.length, peers = Array(_len3), _key5 = 0; _key5 < _len3; _key5++) {\n peers[_key5] = arguments[_key5];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('or', null, peers);\n };\n\n _class.prototype.and = function and() {\n for (var _len4 = arguments.length, peers = Array(_len4), _key6 = 0; _key6 < _len4; _key6++) {\n peers[_key6] = arguments[_key6];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('and', null, peers);\n };\n\n _class.prototype.nand = function nand() {\n for (var _len5 = arguments.length, peers = Array(_len5), _key7 = 0; _key7 < _len5; _key7++) {\n peers[_key7] = arguments[_key7];\n }\n\n peers = Hoek.flatten(peers);\n return this._dependency('nand', null, peers);\n };\n\n _class.prototype.requiredKeys = function requiredKeys() {\n for (var _len6 = arguments.length, children = Array(_len6), _key8 = 0; _key8 < _len6; _key8++) {\n children[_key8] = arguments[_key8];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'required');\n };\n\n _class.prototype.optionalKeys = function optionalKeys() {\n for (var _len7 = arguments.length, children = Array(_len7), _key9 = 0; _key9 < _len7; _key9++) {\n children[_key9] = arguments[_key9];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'optional');\n };\n\n _class.prototype.forbiddenKeys = function forbiddenKeys() {\n for (var _len8 = arguments.length, children = Array(_len8), _key10 = 0; _key10 < _len8; _key10++) {\n children[_key10] = arguments[_key10];\n }\n\n children = Hoek.flatten(children);\n return this.applyFunctionToChildren(children, 'forbidden');\n };\n\n _class.prototype.rename = function rename(from, to, options) {\n Hoek.assert(typeof from === 'string' || from instanceof RegExp, 'Rename missing the from argument');\n Hoek.assert(typeof to === 'string', 'Rename missing the to argument');\n Hoek.assert(to !== from, 'Cannot rename key to same name:', from);\n\n for (var i = 0; i < this._inner.renames.length; ++i) {\n Hoek.assert(this._inner.renames[i].from !== from, 'Cannot rename the same key multiple times');\n }\n\n var obj = this.clone();\n\n obj._inner.renames.push({\n from: from,\n to: to,\n options: Hoek.applyToDefaults(internals.renameDefaults, options || {}),\n isRegExp: from instanceof RegExp\n });\n\n return obj;\n };\n\n _class.prototype.applyFunctionToChildren = function applyFunctionToChildren(children, fn, args, root) {\n children = [].concat(children);\n Hoek.assert(children.length > 0, 'expected at least one children');\n var groupedChildren = internals.groupChildren(children);\n var obj = void 0;\n\n if ('' in groupedChildren) {\n obj = this[fn].apply(this, args);\n delete groupedChildren[''];\n } else {\n obj = this.clone();\n }\n\n if (obj._inner.children) {\n root = root ? root + '.' : '';\n\n for (var i = 0; i < obj._inner.children.length; ++i) {\n var child = obj._inner.children[i];\n var group = groupedChildren[child.key];\n\n if (group) {\n obj._inner.children[i] = {\n key: child.key,\n _refs: child._refs,\n schema: child.schema.applyFunctionToChildren(group, fn, args, root + child.key)\n };\n delete groupedChildren[child.key];\n }\n }\n }\n\n var remaining = Object.keys(groupedChildren);\n Hoek.assert(remaining.length === 0, 'unknown key(s)', remaining.join(', '));\n return obj;\n };\n\n _class.prototype._dependency = function _dependency(type, key, peers) {\n peers = [].concat(peers);\n\n for (var i = 0; i < peers.length; ++i) {\n Hoek.assert(typeof peers[i] === 'string', type, 'peers must be a string or array of strings');\n }\n\n var obj = this.clone();\n\n obj._inner.dependencies.push({\n type: type,\n key: key,\n peers: peers\n });\n\n return obj;\n };\n\n _class.prototype.describe = function describe(shallow) {\n var description = Any.prototype.describe.call(this);\n\n if (description.rules) {\n for (var i = 0; i < description.rules.length; ++i) {\n var rule = description.rules[i]; // Coverage off for future-proof descriptions, only object().assert() is use right now\n\n if (\n /* $lab:coverage:off$ */\n rule.arg && _typeof(rule.arg) === 'object' && rule.arg.schema && rule.arg.ref\n /* $lab:coverage:on$ */\n ) {\n rule.arg = {\n schema: rule.arg.schema.describe(),\n ref: rule.arg.ref.toString()\n };\n }\n }\n }\n\n if (this._inner.children && !shallow) {\n description.children = {};\n\n for (var _i7 = 0; _i7 < this._inner.children.length; ++_i7) {\n var child = this._inner.children[_i7];\n description.children[child.key] = child.schema.describe();\n }\n }\n\n if (this._inner.dependencies.length) {\n description.dependencies = Hoek.clone(this._inner.dependencies);\n }\n\n if (this._inner.patterns.length) {\n description.patterns = [];\n\n for (var _i8 = 0; _i8 < this._inner.patterns.length; ++_i8) {\n var pattern = this._inner.patterns[_i8];\n\n if (pattern.regex) {\n description.patterns.push({\n regex: pattern.regex.toString(),\n rule: pattern.rule.describe()\n });\n } else {\n description.patterns.push({\n schema: pattern.schema.describe(),\n rule: pattern.rule.describe()\n });\n }\n }\n }\n\n if (this._inner.renames.length > 0) {\n description.renames = Hoek.clone(this._inner.renames);\n }\n\n return description;\n };\n\n _class.prototype.assert = function assert(ref, schema, message) {\n ref = Cast.ref(ref);\n Hoek.assert(ref.isContext || ref.depth > 1, 'Cannot use assertions for root level references - use direct key rules instead');\n message = message || 'pass the assertion test';\n\n try {\n schema = Cast.schema(this._currentJoi, schema);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.message = castErr.message + '(' + castErr.path + ')';\n }\n\n throw castErr;\n }\n\n var key = ref.path[ref.path.length - 1];\n var path = ref.path.join('.');\n return this._test('assert', {\n schema: schema,\n ref: ref\n }, function (value, state, options) {\n var result = schema._validate(ref(value), null, options, value);\n\n if (!result.errors) {\n return value;\n }\n\n var localState = Hoek.merge({}, state);\n localState.key = key;\n localState.path = ref.path;\n return this.createError('object.assert', {\n ref: path,\n message: message\n }, localState, options);\n });\n };\n\n _class.prototype.type = function type(constructor) {\n var name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : constructor.name;\n Hoek.assert(typeof constructor === 'function', 'type must be a constructor function');\n var typeData = {\n name: name,\n ctor: constructor\n };\n return this._test('type', typeData, function (value, state, options) {\n if (value instanceof constructor) {\n return value;\n }\n\n return this.createError('object.type', {\n type: typeData.name\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value) {\n try {\n return JSON.parse(value);\n } catch (parseErr) {}\n\n return value;\n };\n\n internals.renameDefaults = {\n alias: false,\n // Keep old value in place\n multiple: false,\n // Allow renaming multiple keys into the same target\n override: false // Overrides an existing key\n\n };\n\n internals.groupChildren = function (children) {\n children.sort();\n var grouped = {};\n\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n Hoek.assert(typeof child === 'string', 'children must be strings');\n var group = child.split('.')[0];\n var childGroup = grouped[group] = grouped[group] || [];\n childGroup.push(child.substring(group.length + 1));\n }\n\n return grouped;\n };\n\n internals.keysToLabels = function (schema, keys) {\n var children = schema._inner.children;\n\n if (!children) {\n return keys;\n }\n\n var findLabel = function findLabel(key) {\n var matchingChild = children.find(function (child) {\n return child.key === key;\n });\n return matchingChild ? matchingChild.schema._getLabel(key) : key;\n };\n\n if (Array.isArray(keys)) {\n return keys.map(findLabel);\n }\n\n return findLabel(keys);\n };\n\n internals.with = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n return this.createError('object.with', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.without = function (value, peers, parent, state, options) {\n if (value === undefined) {\n return value;\n }\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return this.createError('object.without', {\n main: state.key,\n mainWithLabel: internals.keysToLabels(this, state.key),\n peer: peer,\n peerWithLabel: internals.keysToLabels(this, peer)\n }, state, options);\n }\n }\n\n return value;\n };\n\n internals.xor = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n if (present.length === 1) {\n return value;\n }\n\n var context = {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n };\n\n if (present.length === 0) {\n return this.createError('object.missing', context, state, options);\n }\n\n return this.createError('object.xor', context, state, options);\n };\n\n internals.or = function (value, peers, parent, state, options) {\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n return value;\n }\n }\n\n return this.createError('object.missing', {\n peers: peers,\n peersWithLabels: internals.keysToLabels(this, peers)\n }, state, options);\n };\n\n internals.and = function (value, peers, parent, state, options) {\n var missing = [];\n var present = [];\n var count = peers.length;\n\n for (var i = 0; i < count; ++i) {\n var peer = peers[i];\n\n if (!Object.prototype.hasOwnProperty.call(parent, peer) || parent[peer] === undefined) {\n missing.push(peer);\n } else {\n present.push(peer);\n }\n }\n\n var aon = missing.length === count || present.length === count;\n\n if (!aon) {\n return this.createError('object.and', {\n present: present,\n presentWithLabels: internals.keysToLabels(this, present),\n missing: missing,\n missingWithLabels: internals.keysToLabels(this, missing)\n }, state, options);\n }\n };\n\n internals.nand = function (value, peers, parent, state, options) {\n var present = [];\n\n for (var i = 0; i < peers.length; ++i) {\n var peer = peers[i];\n\n if (Object.prototype.hasOwnProperty.call(parent, peer) && parent[peer] !== undefined) {\n present.push(peer);\n }\n }\n\n var values = Hoek.clone(peers);\n var main = values.splice(0, 1)[0];\n var allPresent = present.length === peers.length;\n return allPresent ? this.createError('object.nand', {\n main: main,\n mainWithLabel: internals.keysToLabels(this, main),\n peers: values,\n peersWithLabels: internals.keysToLabels(this, values)\n }, state, options) : null;\n };\n\n module.exports = new internals.Object();\n /***/\n },\n /* 14 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Delcare internals\n\n var internals = {\n rfc3986: {}\n };\n\n internals.generate = function () {\n /**\n * elements separated by forward slash (\"/\") are alternatives.\n */\n var or = '|';\n /**\n * Rule to support zero-padded addresses.\n */\n\n var zeroPad = '0?';\n /**\n * DIGIT = %x30-39 ; 0-9\n */\n\n var digit = '0-9';\n var digitOnly = '[' + digit + ']';\n /**\n * ALPHA = %x41-5A / %x61-7A ; A-Z / a-z\n */\n\n var alpha = 'a-zA-Z';\n var alphaOnly = '[' + alpha + ']';\n /**\n * IPv4\n * cidr = DIGIT ; 0-9\n * / %x31-32 DIGIT ; 10-29\n * / \"3\" %x30-32 ; 30-32\n */\n\n internals.rfc3986.ipv4Cidr = digitOnly + or + '[1-2]' + digitOnly + or + '3' + '[0-2]';\n /**\n * IPv6\n * cidr = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" %x0-1 DIGIT ; 100-119\n * / \"12\" %x0-8 ; 120-128\n */\n\n internals.rfc3986.ipv6Cidr = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + '[01]' + digitOnly + or + '12[0-8])';\n /**\n * HEXDIG = DIGIT / \"A\" / \"B\" / \"C\" / \"D\" / \"E\" / \"F\"\n */\n\n var hexDigit = digit + 'A-Fa-f';\n var hexDigitOnly = '[' + hexDigit + ']';\n /**\n * unreserved = ALPHA / DIGIT / \"-\" / \".\" / \"_\" / \"~\"\n */\n\n var unreserved = alpha + digit + '-\\\\._~';\n /**\n * sub-delims = \"!\" / \"$\" / \"&\" / \"'\" / \"(\" / \")\" / \"*\" / \"+\" / \",\" / \";\" / \"=\"\n */\n\n var subDelims = '!\\\\$&\\'\\\\(\\\\)\\\\*\\\\+,;=';\n /**\n * pct-encoded = \"%\" HEXDIG HEXDIG\n */\n\n var pctEncoded = '%' + hexDigit;\n /**\n * pchar = unreserved / pct-encoded / sub-delims / \":\" / \"@\"\n */\n\n var pchar = unreserved + pctEncoded + subDelims + ':@';\n var pcharOnly = '[' + pchar + ']';\n /**\n * dec-octet = DIGIT ; 0-9\n * / %x31-39 DIGIT ; 10-99\n * / \"1\" 2DIGIT ; 100-199\n * / \"2\" %x30-34 DIGIT ; 200-249\n * / \"25\" %x30-35 ; 250-255\n */\n\n var decOctect = '(?:' + zeroPad + zeroPad + digitOnly + or + zeroPad + '[1-9]' + digitOnly + or + '1' + digitOnly + digitOnly + or + '2' + '[0-4]' + digitOnly + or + '25' + '[0-5])';\n /**\n * IPv4address = dec-octet \".\" dec-octet \".\" dec-octet \".\" dec-octet\n */\n\n internals.rfc3986.IPv4address = '(?:' + decOctect + '\\\\.){3}' + decOctect;\n /**\n * h16 = 1*4HEXDIG ; 16 bits of address represented in hexadecimal\n * ls32 = ( h16 \":\" h16 ) / IPv4address ; least-significant 32 bits of address\n * IPv6address = 6( h16 \":\" ) ls32\n * / \"::\" 5( h16 \":\" ) ls32\n * / [ h16 ] \"::\" 4( h16 \":\" ) ls32\n * / [ *1( h16 \":\" ) h16 ] \"::\" 3( h16 \":\" ) ls32\n * / [ *2( h16 \":\" ) h16 ] \"::\" 2( h16 \":\" ) ls32\n * / [ *3( h16 \":\" ) h16 ] \"::\" h16 \":\" ls32\n * / [ *4( h16 \":\" ) h16 ] \"::\" ls32\n * / [ *5( h16 \":\" ) h16 ] \"::\" h16\n * / [ *6( h16 \":\" ) h16 ] \"::\"\n */\n\n var h16 = hexDigitOnly + '{1,4}';\n var ls32 = '(?:' + h16 + ':' + h16 + '|' + internals.rfc3986.IPv4address + ')';\n var IPv6SixHex = '(?:' + h16 + ':){6}' + ls32;\n var IPv6FiveHex = '::(?:' + h16 + ':){5}' + ls32;\n var IPv6FourHex = '(?:' + h16 + ')?::(?:' + h16 + ':){4}' + ls32;\n var IPv6ThreeHex = '(?:(?:' + h16 + ':){0,1}' + h16 + ')?::(?:' + h16 + ':){3}' + ls32;\n var IPv6TwoHex = '(?:(?:' + h16 + ':){0,2}' + h16 + ')?::(?:' + h16 + ':){2}' + ls32;\n var IPv6OneHex = '(?:(?:' + h16 + ':){0,3}' + h16 + ')?::' + h16 + ':' + ls32;\n var IPv6NoneHex = '(?:(?:' + h16 + ':){0,4}' + h16 + ')?::' + ls32;\n var IPv6NoneHex2 = '(?:(?:' + h16 + ':){0,5}' + h16 + ')?::' + h16;\n var IPv6NoneHex3 = '(?:(?:' + h16 + ':){0,6}' + h16 + ')?::';\n internals.rfc3986.IPv6address = '(?:' + IPv6SixHex + or + IPv6FiveHex + or + IPv6FourHex + or + IPv6ThreeHex + or + IPv6TwoHex + or + IPv6OneHex + or + IPv6NoneHex + or + IPv6NoneHex2 + or + IPv6NoneHex3 + ')';\n /**\n * IPvFuture = \"v\" 1*HEXDIG \".\" 1*( unreserved / sub-delims / \":\" )\n */\n\n internals.rfc3986.IPvFuture = 'v' + hexDigitOnly + '+\\\\.[' + unreserved + subDelims + ':]+';\n /**\n * scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\n */\n\n internals.rfc3986.scheme = alphaOnly + '[' + alpha + digit + '+-\\\\.]*';\n /**\n * userinfo = *( unreserved / pct-encoded / sub-delims / \":\" )\n */\n\n var userinfo = '[' + unreserved + pctEncoded + subDelims + ':]*';\n /**\n * IP-literal = \"[\" ( IPv6address / IPvFuture ) \"]\"\n */\n\n var IPLiteral = '\\\\[(?:' + internals.rfc3986.IPv6address + or + internals.rfc3986.IPvFuture + ')\\\\]';\n /**\n * reg-name = *( unreserved / pct-encoded / sub-delims )\n */\n\n var regName = '[' + unreserved + pctEncoded + subDelims + ']{0,255}';\n /**\n * host = IP-literal / IPv4address / reg-name\n */\n\n var host = '(?:' + IPLiteral + or + internals.rfc3986.IPv4address + or + regName + ')';\n /**\n * port = *DIGIT\n */\n\n var port = digitOnly + '*';\n /**\n * authority = [ userinfo \"@\" ] host [ \":\" port ]\n */\n\n var authority = '(?:' + userinfo + '@)?' + host + '(?::' + port + ')?';\n /**\n * segment = *pchar\n * segment-nz = 1*pchar\n * path = path-abempty ; begins with \"/\" or is empty\n * / path-absolute ; begins with \"/\" but not \"//\"\n * / path-noscheme ; begins with a non-colon segment\n * / path-rootless ; begins with a segment\n * / path-empty ; zero characters\n * path-abempty = *( \"/\" segment )\n * path-absolute = \"/\" [ segment-nz *( \"/\" segment ) ]\n * path-rootless = segment-nz *( \"/\" segment )\n */\n\n var segment = pcharOnly + '*';\n var segmentNz = pcharOnly + '+';\n var segmentNzNc = '[' + unreserved + pctEncoded + subDelims + '@' + ']+';\n var pathEmpty = '';\n var pathAbEmpty = '(?:\\\\/' + segment + ')*';\n var pathAbsolute = '\\\\/(?:' + segmentNz + pathAbEmpty + ')?';\n var pathRootless = segmentNz + pathAbEmpty;\n var pathNoScheme = segmentNzNc + pathAbEmpty;\n /**\n * hier-part = \"//\" authority path\n */\n\n internals.rfc3986.hierPart = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathRootless + ')';\n /**\n * relative-part = \"//\" authority path-abempty\n * / path-absolute\n * / path-noscheme\n * / path-empty\n */\n\n internals.rfc3986.relativeRef = '(?:' + '(?:\\\\/\\\\/' + authority + pathAbEmpty + ')' + or + pathAbsolute + or + pathNoScheme + or + pathEmpty + ')';\n /**\n * query = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.query = '[' + pchar + '\\\\/\\\\?]*(?=#|$)'; //Finish matching either at the fragment part or end of the line.\n\n /**\n * fragment = *( pchar / \"/\" / \"?\" )\n */\n\n internals.rfc3986.fragment = '[' + pchar + '\\\\/\\\\?]*';\n };\n\n internals.generate();\n module.exports = internals.rfc3986;\n /***/\n },\n /* 15 */\n\n /***/\n function (module, exports) {\n /***/\n },\n /* 16 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (global, process) {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n var formatRegExp = /%[sdj%]/g;\n\n exports.format = function (f) {\n if (!isString(f)) {\n var objects = [];\n\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function (x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n\n switch (x) {\n case '%s':\n return String(args[i++]);\n\n case '%d':\n return Number(args[i++]);\n\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n\n default:\n return x;\n }\n });\n\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n\n return str;\n }; // Mark that a method should not be used.\n // Returns a modified function which warns once by default.\n // If --no-deprecation is set, then it is a no-op.\n\n\n exports.deprecate = function (fn, msg) {\n // Allow for deprecating things in the process of starting up.\n if (isUndefined(global.process)) {\n return function () {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n if (process.noDeprecation === true) {\n return fn;\n }\n\n var warned = false;\n\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n\n warned = true;\n }\n\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n };\n\n var debugs = {};\n var debugEnviron;\n\n exports.debuglog = function (set) {\n if (isUndefined(debugEnviron)) debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n\n debugs[set] = function () {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function () {};\n }\n }\n\n return debugs[set];\n };\n /**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n\n /* legacy: obj, showHidden, depth, colors*/\n\n\n function inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n }; // legacy...\n\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n } // set default options\n\n\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n }\n\n exports.inspect = inspect; // http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\n\n inspect.colors = {\n 'bold': [1, 22],\n 'italic': [3, 23],\n 'underline': [4, 24],\n 'inverse': [7, 27],\n 'white': [37, 39],\n 'grey': [90, 39],\n 'black': [30, 39],\n 'blue': [34, 39],\n 'cyan': [36, 39],\n 'green': [32, 39],\n 'magenta': [35, 39],\n 'red': [31, 39],\n 'yellow': [33, 39]\n }; // Don't use 'blue' not visible on cmd.exe\n\n inspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n };\n\n function stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return \"\\x1B[\" + inspect.colors[style][0] + 'm' + str + \"\\x1B[\" + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n }\n\n function stylizeNoColor(str, styleType) {\n return str;\n }\n\n function arrayToHash(array) {\n var hash = {};\n array.forEach(function (val, idx) {\n hash[val] = true;\n });\n return hash;\n }\n\n function formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect && value && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n\n return ret;\n } // Primitive types cannot have properties\n\n\n var primitive = formatPrimitive(ctx, value);\n\n if (primitive) {\n return primitive;\n } // Look up the keys of the object.\n\n\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n } // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n\n\n if (isError(value) && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n } // Some type of object without properties can be shortcutted.\n\n\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '',\n array = false,\n braces = ['{', '}']; // Make Array say that they are Array\n\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n } // Make functions say that they are functions\n\n\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n } // Make RegExps say that they are RegExps\n\n\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n } // Make dates with properties first say the date\n\n\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n } // Make error with message first say the error\n\n\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n var output;\n\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function (key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n return reduceToSingleString(output, base, braces);\n }\n\n function formatPrimitive(ctx, value) {\n if (isUndefined(value)) return ctx.stylize('undefined', 'undefined');\n\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '').replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n\n if (isNumber(value)) return ctx.stylize('' + value, 'number');\n if (isBoolean(value)) return ctx.stylize('' + value, 'boolean'); // For some reason typeof null is \"object\", so special case here.\n\n if (isNull(value)) return ctx.stylize('null', 'null');\n }\n\n function formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n }\n\n function formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, String(i), true));\n } else {\n output.push('');\n }\n }\n\n keys.forEach(function (key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys, key, true));\n }\n });\n return output;\n }\n\n function formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || {\n value: value[key]\n };\n\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function (line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n\n name = JSON.stringify('' + key);\n\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\").replace(/\\\\\"/g, '\"').replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n }\n\n function reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function (prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] + (base === '' ? '' : base + '\\n ') + ' ' + output.join(',\\n ') + ' ' + braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n } // NOTE: These type checking functions intentionally don't use `instanceof`\n // because it is fragile and can be easily faked with `Object.create()`.\n\n\n function isArray(ar) {\n return Array.isArray(ar);\n }\n\n exports.isArray = isArray;\n\n function isBoolean(arg) {\n return typeof arg === 'boolean';\n }\n\n exports.isBoolean = isBoolean;\n\n function isNull(arg) {\n return arg === null;\n }\n\n exports.isNull = isNull;\n\n function isNullOrUndefined(arg) {\n return arg == null;\n }\n\n exports.isNullOrUndefined = isNullOrUndefined;\n\n function isNumber(arg) {\n return typeof arg === 'number';\n }\n\n exports.isNumber = isNumber;\n\n function isString(arg) {\n return typeof arg === 'string';\n }\n\n exports.isString = isString;\n\n function isSymbol(arg) {\n return typeof arg === 'symbol';\n }\n\n exports.isSymbol = isSymbol;\n\n function isUndefined(arg) {\n return arg === void 0;\n }\n\n exports.isUndefined = isUndefined;\n\n function isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n }\n\n exports.isRegExp = isRegExp;\n\n function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n }\n\n exports.isObject = isObject;\n\n function isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n }\n\n exports.isDate = isDate;\n\n function isError(e) {\n return isObject(e) && (objectToString(e) === '[object Error]' || e instanceof Error);\n }\n\n exports.isError = isError;\n\n function isFunction(arg) {\n return typeof arg === 'function';\n }\n\n exports.isFunction = isFunction;\n\n function isPrimitive(arg) {\n return arg === null || typeof arg === 'boolean' || typeof arg === 'number' || typeof arg === 'string' || typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n }\n\n exports.isPrimitive = isPrimitive;\n exports.isBuffer = __webpack_require__(40);\n\n function objectToString(o) {\n return Object.prototype.toString.call(o);\n }\n\n function pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n }\n\n var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']; // 26 Feb 16:19:34\n\n function timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()), pad(d.getMinutes()), pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n } // log is just a thin wrapper to console.log that prepends a timestamp\n\n\n exports.log = function () {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n };\n /**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\n\n\n exports.inherits = __webpack_require__(39);\n\n exports._extend = function (origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n var keys = Object.keys(add);\n var i = keys.length;\n\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n\n return origin;\n };\n\n function hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n }\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(5), __webpack_require__(7));\n /***/\n },\n /* 17 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (global) {\n // compare and isBuffer taken from https://github.com/feross/buffer/blob/680e9e5e488f22aac27599a57dc844a6315928dd/index.js\n // original notice:\n\n /*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n function compare(a, b) {\n if (a === b) {\n return 0;\n }\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break;\n }\n }\n\n if (x < y) {\n return -1;\n }\n\n if (y < x) {\n return 1;\n }\n\n return 0;\n }\n\n function isBuffer(b) {\n if (global.Buffer && typeof global.Buffer.isBuffer === 'function') {\n return global.Buffer.isBuffer(b);\n }\n\n return !!(b != null && b._isBuffer);\n } // based on node assert, original notice:\n // http://wiki.commonjs.org/wiki/Unit_Testing/1.0\n //\n // THIS IS NOT TESTED NOR LIKELY TO WORK OUTSIDE V8!\n //\n // Originally from narwhal.js (http://narwhaljs.org)\n // Copyright (c) 2009 Thomas Robinson <280north.com>\n //\n // Permission is hereby granted, free of charge, to any person obtaining a copy\n // of this software and associated documentation files (the 'Software'), to\n // deal in the Software without restriction, including without limitation the\n // rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n // sell copies of the Software, and to permit persons to whom the Software is\n // furnished to do so, subject to the following conditions:\n //\n // The above copyright notice and this permission notice shall be included in\n // all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n // AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN\n // ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n\n var util = __webpack_require__(16);\n\n var hasOwn = Object.prototype.hasOwnProperty;\n var pSlice = Array.prototype.slice;\n\n var functionsHaveNames = function () {\n return function foo() {}.name === 'foo';\n }();\n\n function pToString(obj) {\n return Object.prototype.toString.call(obj);\n }\n\n function isView(arrbuf) {\n if (isBuffer(arrbuf)) {\n return false;\n }\n\n if (typeof global.ArrayBuffer !== 'function') {\n return false;\n }\n\n if (typeof ArrayBuffer.isView === 'function') {\n return ArrayBuffer.isView(arrbuf);\n }\n\n if (!arrbuf) {\n return false;\n }\n\n if (arrbuf instanceof DataView) {\n return true;\n }\n\n if (arrbuf.buffer && arrbuf.buffer instanceof ArrayBuffer) {\n return true;\n }\n\n return false;\n } // 1. The assert module provides functions that throw\n // AssertionError's when particular conditions are not met. The\n // assert module must conform to the following interface.\n\n\n var assert = module.exports = ok; // 2. The AssertionError is defined in assert.\n // new assert.AssertionError({ message: message,\n // actual: actual,\n // expected: expected })\n\n var regex = /\\s*function\\s+([^\\(\\s]*)\\s*/; // based on https://github.com/ljharb/function.prototype.name/blob/adeeeec8bfcc6068b187d7d9fb3d5bb1d3a30899/implementation.js\n\n function getName(func) {\n if (!util.isFunction(func)) {\n return;\n }\n\n if (functionsHaveNames) {\n return func.name;\n }\n\n var str = func.toString();\n var match = str.match(regex);\n return match && match[1];\n }\n\n assert.AssertionError = function AssertionError(options) {\n this.name = 'AssertionError';\n this.actual = options.actual;\n this.expected = options.expected;\n this.operator = options.operator;\n\n if (options.message) {\n this.message = options.message;\n this.generatedMessage = false;\n } else {\n this.message = getMessage(this);\n this.generatedMessage = true;\n }\n\n var stackStartFunction = options.stackStartFunction || fail;\n\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, stackStartFunction);\n } else {\n // non v8 browsers so we can have a stacktrace\n var err = new Error();\n\n if (err.stack) {\n var out = err.stack; // try to strip useless frames\n\n var fn_name = getName(stackStartFunction);\n var idx = out.indexOf('\\n' + fn_name);\n\n if (idx >= 0) {\n // once we have located the function frame\n // we need to strip out everything before it (and its line)\n var next_line = out.indexOf('\\n', idx + 1);\n out = out.substring(next_line + 1);\n }\n\n this.stack = out;\n }\n }\n }; // assert.AssertionError instanceof Error\n\n\n util.inherits(assert.AssertionError, Error);\n\n function truncate(s, n) {\n if (typeof s === 'string') {\n return s.length < n ? s : s.slice(0, n);\n } else {\n return s;\n }\n }\n\n function inspect(something) {\n if (functionsHaveNames || !util.isFunction(something)) {\n return util.inspect(something);\n }\n\n var rawname = getName(something);\n var name = rawname ? ': ' + rawname : '';\n return '[Function' + name + ']';\n }\n\n function getMessage(self) {\n return truncate(inspect(self.actual), 128) + ' ' + self.operator + ' ' + truncate(inspect(self.expected), 128);\n } // At present only the three keys mentioned above are used and\n // understood by the spec. Implementations or sub modules can pass\n // other keys to the AssertionError's constructor - they will be\n // ignored.\n // 3. All of the following functions must throw an AssertionError\n // when a corresponding condition is not met, with a message that\n // may be undefined if not provided. All assertion methods provide\n // both the actual and expected values to the assertion error for\n // display purposes.\n\n\n function fail(actual, expected, message, operator, stackStartFunction) {\n throw new assert.AssertionError({\n message: message,\n actual: actual,\n expected: expected,\n operator: operator,\n stackStartFunction: stackStartFunction\n });\n } // EXTENSION! allows for well behaved errors defined elsewhere.\n\n\n assert.fail = fail; // 4. Pure assertion tests whether a value is truthy, as determined\n // by !!guard.\n // assert.ok(guard, message_opt);\n // This statement is equivalent to assert.equal(true, !!guard,\n // message_opt);. To test strictly for the value true, use\n // assert.strictEqual(true, guard, message_opt);.\n\n function ok(value, message) {\n if (!value) fail(value, true, message, '==', assert.ok);\n }\n\n assert.ok = ok; // 5. The equality assertion tests shallow, coercive equality with\n // ==.\n // assert.equal(actual, expected, message_opt);\n\n assert.equal = function equal(actual, expected, message) {\n if (actual != expected) fail(actual, expected, message, '==', assert.equal);\n }; // 6. The non-equality assertion tests for whether two objects are not equal\n // with != assert.notEqual(actual, expected, message_opt);\n\n\n assert.notEqual = function notEqual(actual, expected, message) {\n if (actual == expected) {\n fail(actual, expected, message, '!=', assert.notEqual);\n }\n }; // 7. The equivalence assertion tests a deep equality relation.\n // assert.deepEqual(actual, expected, message_opt);\n\n\n assert.deepEqual = function deepEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'deepEqual', assert.deepEqual);\n }\n };\n\n assert.deepStrictEqual = function deepStrictEqual(actual, expected, message) {\n if (!_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'deepStrictEqual', assert.deepStrictEqual);\n }\n };\n\n function _deepEqual(actual, expected, strict, memos) {\n // 7.1. All identical values are equivalent, as determined by ===.\n if (actual === expected) {\n return true;\n } else if (isBuffer(actual) && isBuffer(expected)) {\n return compare(actual, expected) === 0; // 7.2. If the expected value is a Date object, the actual value is\n // equivalent if it is also a Date object that refers to the same time.\n } else if (util.isDate(actual) && util.isDate(expected)) {\n return actual.getTime() === expected.getTime(); // 7.3 If the expected value is a RegExp object, the actual value is\n // equivalent if it is also a RegExp object with the same source and\n // properties (`global`, `multiline`, `lastIndex`, `ignoreCase`).\n } else if (util.isRegExp(actual) && util.isRegExp(expected)) {\n return actual.source === expected.source && actual.global === expected.global && actual.multiline === expected.multiline && actual.lastIndex === expected.lastIndex && actual.ignoreCase === expected.ignoreCase; // 7.4. Other pairs that do not both pass typeof value == 'object',\n // equivalence is determined by ==.\n } else if ((actual === null || typeof actual !== 'object') && (expected === null || typeof expected !== 'object')) {\n return strict ? actual === expected : actual == expected; // If both values are instances of typed arrays, wrap their underlying\n // ArrayBuffers in a Buffer each to increase performance\n // This optimization requires the arrays to have the same type as checked by\n // Object.prototype.toString (aka pToString). Never perform binary\n // comparisons for Float*Arrays, though, since e.g. +0 === -0 but their\n // bit patterns are not identical.\n } else if (isView(actual) && isView(expected) && pToString(actual) === pToString(expected) && !(actual instanceof Float32Array || actual instanceof Float64Array)) {\n return compare(new Uint8Array(actual.buffer), new Uint8Array(expected.buffer)) === 0; // 7.5 For all other Object pairs, including Array objects, equivalence is\n // determined by having the same number of owned properties (as verified\n // with Object.prototype.hasOwnProperty.call), the same set of keys\n // (although not necessarily the same order), equivalent values for every\n // corresponding key, and an identical 'prototype' property. Note: this\n // accounts for both named and indexed properties on Arrays.\n } else if (isBuffer(actual) !== isBuffer(expected)) {\n return false;\n } else {\n memos = memos || {\n actual: [],\n expected: []\n };\n var actualIndex = memos.actual.indexOf(actual);\n\n if (actualIndex !== -1) {\n if (actualIndex === memos.expected.indexOf(expected)) {\n return true;\n }\n }\n\n memos.actual.push(actual);\n memos.expected.push(expected);\n return objEquiv(actual, expected, strict, memos);\n }\n }\n\n function isArguments(object) {\n return Object.prototype.toString.call(object) == '[object Arguments]';\n }\n\n function objEquiv(a, b, strict, actualVisitedObjects) {\n if (a === null || a === undefined || b === null || b === undefined) return false; // if one is a primitive, the other must be same\n\n if (util.isPrimitive(a) || util.isPrimitive(b)) return a === b;\n if (strict && Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false;\n var aIsArgs = isArguments(a);\n var bIsArgs = isArguments(b);\n if (aIsArgs && !bIsArgs || !aIsArgs && bIsArgs) return false;\n\n if (aIsArgs) {\n a = pSlice.call(a);\n b = pSlice.call(b);\n return _deepEqual(a, b, strict);\n }\n\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n var key, i; // having the same number of owned properties (keys incorporates\n // hasOwnProperty)\n\n if (ka.length !== kb.length) return false; //the same set of keys (although not necessarily the same order),\n\n ka.sort();\n kb.sort(); //~~~cheap key test\n\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] !== kb[i]) return false;\n } //equivalent values for every corresponding key, and\n //~~~possibly expensive deep test\n\n\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!_deepEqual(a[key], b[key], strict, actualVisitedObjects)) return false;\n }\n\n return true;\n } // 8. The non-equivalence assertion tests for any deep inequality.\n // assert.notDeepEqual(actual, expected, message_opt);\n\n\n assert.notDeepEqual = function notDeepEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, false)) {\n fail(actual, expected, message, 'notDeepEqual', assert.notDeepEqual);\n }\n };\n\n assert.notDeepStrictEqual = notDeepStrictEqual;\n\n function notDeepStrictEqual(actual, expected, message) {\n if (_deepEqual(actual, expected, true)) {\n fail(actual, expected, message, 'notDeepStrictEqual', notDeepStrictEqual);\n }\n } // 9. The strict equality assertion tests strict equality, as determined by ===.\n // assert.strictEqual(actual, expected, message_opt);\n\n\n assert.strictEqual = function strictEqual(actual, expected, message) {\n if (actual !== expected) {\n fail(actual, expected, message, '===', assert.strictEqual);\n }\n }; // 10. The strict non-equality assertion tests for strict inequality, as\n // determined by !==. assert.notStrictEqual(actual, expected, message_opt);\n\n\n assert.notStrictEqual = function notStrictEqual(actual, expected, message) {\n if (actual === expected) {\n fail(actual, expected, message, '!==', assert.notStrictEqual);\n }\n };\n\n function expectedException(actual, expected) {\n if (!actual || !expected) {\n return false;\n }\n\n if (Object.prototype.toString.call(expected) == '[object RegExp]') {\n return expected.test(actual);\n }\n\n try {\n if (actual instanceof expected) {\n return true;\n }\n } catch (e) {// Ignore. The instanceof check doesn't work for arrow functions.\n }\n\n if (Error.isPrototypeOf(expected)) {\n return false;\n }\n\n return expected.call({}, actual) === true;\n }\n\n function _tryBlock(block) {\n var error;\n\n try {\n block();\n } catch (e) {\n error = e;\n }\n\n return error;\n }\n\n function _throws(shouldThrow, block, expected, message) {\n var actual;\n\n if (typeof block !== 'function') {\n throw new TypeError('\"block\" argument must be a function');\n }\n\n if (typeof expected === 'string') {\n message = expected;\n expected = null;\n }\n\n actual = _tryBlock(block);\n message = (expected && expected.name ? ' (' + expected.name + ').' : '.') + (message ? ' ' + message : '.');\n\n if (shouldThrow && !actual) {\n fail(actual, expected, 'Missing expected exception' + message);\n }\n\n var userProvidedMessage = typeof message === 'string';\n var isUnwantedException = !shouldThrow && util.isError(actual);\n var isUnexpectedException = !shouldThrow && actual && !expected;\n\n if (isUnwantedException && userProvidedMessage && expectedException(actual, expected) || isUnexpectedException) {\n fail(actual, expected, 'Got unwanted exception' + message);\n }\n\n if (shouldThrow && actual && expected && !expectedException(actual, expected) || !shouldThrow && actual) {\n throw actual;\n }\n } // 11. Expected to throw an error:\n // assert.throws(block, Error_opt, message_opt);\n\n\n assert.throws = function (block,\n /*optional*/\n error,\n /*optional*/\n message) {\n _throws(true, block, error, message);\n }; // EXTENSION! This is annoying to write outside this module.\n\n\n assert.doesNotThrow = function (block,\n /*optional*/\n error,\n /*optional*/\n message) {\n _throws(false, block, error, message);\n };\n\n assert.ifError = function (err) {\n if (err) throw err;\n };\n\n var objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n if (hasOwn.call(obj, key)) keys.push(key);\n }\n\n return keys;\n };\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(5));\n /***/\n },\n /* 18 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Declare internals\n var internals = {};\n\n exports.escapeJavaScript = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeJavaScriptChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeHtml = function (input) {\n if (!input) {\n return '';\n }\n\n var escaped = '';\n\n for (var i = 0; i < input.length; ++i) {\n var charCode = input.charCodeAt(i);\n\n if (internals.isSafe(charCode)) {\n escaped += input[i];\n } else {\n escaped += internals.escapeHtmlChar(charCode);\n }\n }\n\n return escaped;\n };\n\n exports.escapeJson = function (input) {\n if (!input) {\n return '';\n }\n\n var lessThan = 0x3C;\n var greaterThan = 0x3E;\n var andSymbol = 0x26;\n var lineSeperator = 0x2028; // replace method\n\n var charCode = void 0;\n return input.replace(/[<>&\\u2028\\u2029]/g, function (match) {\n charCode = match.charCodeAt(0);\n\n if (charCode === lessThan) {\n return \"\\\\u003c\";\n } else if (charCode === greaterThan) {\n return \"\\\\u003e\";\n } else if (charCode === andSymbol) {\n return \"\\\\u0026\";\n } else if (charCode === lineSeperator) {\n return \"\\\\u2028\";\n }\n\n return \"\\\\u2029\";\n });\n };\n\n internals.escapeJavaScriptChar = function (charCode) {\n if (charCode >= 256) {\n return \"\\\\u\" + internals.padLeft('' + charCode, 4);\n }\n\n var hexValue = Buffer.from(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '\\\\x' + internals.padLeft(hexValue, 2);\n };\n\n internals.escapeHtmlChar = function (charCode) {\n var namedEscape = internals.namedHtml[charCode];\n\n if (typeof namedEscape !== 'undefined') {\n return namedEscape;\n }\n\n if (charCode >= 256) {\n return '&#' + charCode + ';';\n }\n\n var hexValue = Buffer.from(String.fromCharCode(charCode), 'ascii').toString('hex');\n return '&#x' + internals.padLeft(hexValue, 2) + ';';\n };\n\n internals.padLeft = function (str, len) {\n while (str.length < len) {\n str = '0' + str;\n }\n\n return str;\n };\n\n internals.isSafe = function (charCode) {\n return typeof internals.safeCharCodes[charCode] !== 'undefined';\n };\n\n internals.namedHtml = {\n '38': '&amp;',\n '60': '&lt;',\n '62': '&gt;',\n '34': '&quot;',\n '160': '&nbsp;',\n '162': '&cent;',\n '163': '&pound;',\n '164': '&curren;',\n '169': '&copy;',\n '174': '&reg;'\n };\n\n internals.safeCharCodes = function () {\n var safe = {};\n\n for (var i = 32; i < 123; ++i) {\n if (i >= 97 || // a-z\n i >= 65 && i <= 90 || // A-Z\n i >= 48 && i <= 57 || // 0-9\n i === 32 || // space\n i === 46 || // .\n i === 44 || // ,\n i === 45 || // -\n i === 58 || // :\n i === 95) {\n // _\n safe[i] = null;\n }\n }\n\n return safe;\n }();\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 19 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n var Punycode = __webpack_require__(38); // Declare internals\n\n\n var internals = {\n hasOwn: Object.prototype.hasOwnProperty,\n indexOf: Array.prototype.indexOf,\n defaultThreshold: 16,\n maxIPv6Groups: 8,\n categories: {\n valid: 1,\n dnsWarn: 7,\n rfc5321: 15,\n cfws: 31,\n deprecated: 63,\n rfc5322: 127,\n error: 255\n },\n diagnoses: {\n // Address is valid\n valid: 0,\n // Address is valid for SMTP but has unusual elements\n rfc5321TLD: 9,\n rfc5321TLDNumeric: 10,\n rfc5321QuotedString: 11,\n rfc5321AddressLiteral: 12,\n // Address is valid for message, but must be modified for envelope\n cfwsComment: 17,\n cfwsFWS: 18,\n // Address contains non-ASCII when the allowUnicode option is false\n // Has to be > internals.defaultThreshold so that it's rejected\n // without an explicit errorLevel:\n undesiredNonAscii: 25,\n // Address contains deprecated elements, but may still be valid in some contexts\n deprecatedLocalPart: 33,\n deprecatedFWS: 34,\n deprecatedQTEXT: 35,\n deprecatedQP: 36,\n deprecatedComment: 37,\n deprecatedCTEXT: 38,\n deprecatedIPv6: 39,\n deprecatedCFWSNearAt: 49,\n // Address is only valid according to broad definition in RFC 5322, but is otherwise invalid\n rfc5322Domain: 65,\n rfc5322TooLong: 66,\n rfc5322LocalTooLong: 67,\n rfc5322DomainTooLong: 68,\n rfc5322LabelTooLong: 69,\n rfc5322DomainLiteral: 70,\n rfc5322DomainLiteralOBSDText: 71,\n rfc5322IPv6GroupCount: 72,\n rfc5322IPv62x2xColon: 73,\n rfc5322IPv6BadCharacter: 74,\n rfc5322IPv6MaxGroups: 75,\n rfc5322IPv6ColonStart: 76,\n rfc5322IPv6ColonEnd: 77,\n // Address is invalid for any purpose\n errExpectingDTEXT: 129,\n errNoLocalPart: 130,\n errNoDomain: 131,\n errConsecutiveDots: 132,\n errATEXTAfterCFWS: 133,\n errATEXTAfterQS: 134,\n errATEXTAfterDomainLiteral: 135,\n errExpectingQPair: 136,\n errExpectingATEXT: 137,\n errExpectingQTEXT: 138,\n errExpectingCTEXT: 139,\n errBackslashEnd: 140,\n errDotStart: 141,\n errDotEnd: 142,\n errDomainHyphenStart: 143,\n errDomainHyphenEnd: 144,\n errUnclosedQuotedString: 145,\n errUnclosedComment: 146,\n errUnclosedDomainLiteral: 147,\n errFWSCRLFx2: 148,\n errFWSCRLFEnd: 149,\n errCRNoLF: 150,\n errUnknownTLD: 160,\n errDomainTooShort: 161\n },\n components: {\n localpart: 0,\n domain: 1,\n literal: 2,\n contextComment: 3,\n contextFWS: 4,\n contextQuotedString: 5,\n contextQuotedPair: 6\n }\n };\n\n internals.specials = function () {\n var specials = '()<>[]:;@\\\\,.\"'; // US-ASCII visible characters not valid for atext (http://tools.ietf.org/html/rfc5322#section-3.2.3)\n\n var lookup = new Array(0x100);\n lookup.fill(false);\n\n for (var i = 0; i < specials.length; ++i) {\n lookup[specials.codePointAt(i)] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c0Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C0 control characters\n\n for (var i = 0; i < 33; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.c1Controls = function () {\n var lookup = new Array(0x100);\n lookup.fill(false); // add C1 control characters\n\n for (var i = 127; i < 160; ++i) {\n lookup[i] = true;\n }\n\n return function (code) {\n return lookup[code];\n };\n }();\n\n internals.regex = {\n ipV4: /\\b(?:(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)\\.){3}(?:25[0-5]|2[0-4]\\d|[01]?\\d\\d?)$/,\n ipV6: /^[a-fA-F\\d]{0,4}$/\n };\n internals.normalizeSupportsNul = '\\0'.normalize('NFC') === '\\0'; // $lab:coverage:off$\n\n internals.nulNormalize = function (email) {\n return email.split('\\0').map(function (part) {\n return part.normalize('NFC');\n }).join('\\0');\n }; // $lab:coverage:on$\n\n\n internals.normalize = function (email) {\n // $lab:coverage:off$\n if (!internals.normalizeSupportsNul && email.indexOf('\\0') >= 0) {\n return internals.nulNormalize(email);\n } // $lab:coverage:on$\n\n\n return email.normalize('NFC');\n };\n\n internals.checkIpV6 = function (items) {\n return items.every(function (value) {\n return internals.regex.ipV6.test(value);\n });\n };\n\n internals.validDomain = function (tldAtom, options) {\n if (options.tldBlacklist) {\n if (Array.isArray(options.tldBlacklist)) {\n return internals.indexOf.call(options.tldBlacklist, tldAtom) === -1;\n }\n\n return !internals.hasOwn.call(options.tldBlacklist, tldAtom);\n }\n\n if (Array.isArray(options.tldWhitelist)) {\n return internals.indexOf.call(options.tldWhitelist, tldAtom) !== -1;\n }\n\n return internals.hasOwn.call(options.tldWhitelist, tldAtom);\n };\n /**\n * Check that an email address conforms to RFCs 5321, 5322, 6530 and others\n *\n * We distinguish clearly between a Mailbox as defined by RFC 5321 and an\n * addr-spec as defined by RFC 5322. Depending on the context, either can be\n * regarded as a valid email address. The RFC 5321 Mailbox specification is\n * more restrictive (comments, white space and obsolete forms are not allowed).\n *\n * @param {string} email The email address to check. See README for specifics.\n * @param {Object} options The (optional) options:\n * {*} errorLevel Determines the boundary between valid and invalid\n * addresses.\n * {*} tldBlacklist The set of domains to consider invalid.\n * {*} tldWhitelist The set of domains to consider valid.\n * {*} allowUnicode Whether to allow non-ASCII characters, defaults to true.\n * {*} minDomainAtoms The minimum number of domain atoms which must be present\n * for the address to be valid.\n * @param {function(number|boolean)} callback The (optional) callback handler.\n * @return {*}\n */\n\n\n exports.validate = internals.validate = function (email, options, callback) {\n options = options || {};\n email = internals.normalize(email); // The callback function is deprecated.\n // $lab:coverage:off$\n\n if (typeof options === 'function') {\n callback = options;\n options = {};\n }\n\n if (typeof callback !== 'function') {\n callback = null;\n } // $lab:coverage:on$\n\n\n var diagnose = void 0;\n var threshold = void 0;\n\n if (typeof options.errorLevel === 'number') {\n diagnose = true;\n threshold = options.errorLevel;\n } else {\n diagnose = !!options.errorLevel;\n threshold = internals.diagnoses.valid;\n }\n\n if (options.tldWhitelist) {\n if (typeof options.tldWhitelist === 'string') {\n options.tldWhitelist = [options.tldWhitelist];\n } else if (_typeof(options.tldWhitelist) !== 'object') {\n throw new TypeError('expected array or object tldWhitelist');\n }\n }\n\n if (options.tldBlacklist) {\n if (typeof options.tldBlacklist === 'string') {\n options.tldBlacklist = [options.tldBlacklist];\n } else if (_typeof(options.tldBlacklist) !== 'object') {\n throw new TypeError('expected array or object tldBlacklist');\n }\n }\n\n if (options.minDomainAtoms && (options.minDomainAtoms !== (+options.minDomainAtoms | 0) || options.minDomainAtoms < 0)) {\n throw new TypeError('expected positive integer minDomainAtoms');\n }\n\n var maxResult = internals.diagnoses.valid;\n\n var updateResult = function updateResult(value) {\n if (value > maxResult) {\n maxResult = value;\n }\n };\n\n var allowUnicode = options.allowUnicode === undefined || !!options.allowUnicode;\n\n if (!allowUnicode && /[^\\x00-\\x7f]/.test(email)) {\n updateResult(internals.diagnoses.undesiredNonAscii);\n }\n\n var context = {\n now: internals.components.localpart,\n prev: internals.components.localpart,\n stack: [internals.components.localpart]\n };\n var prevToken = '';\n var parseData = {\n local: '',\n domain: ''\n };\n var atomData = {\n locals: [''],\n domains: ['']\n };\n var elementCount = 0;\n var elementLength = 0;\n var crlfCount = 0;\n var charCode = void 0;\n var hyphenFlag = false;\n var assertEnd = false;\n var emailLength = email.length;\n var token = void 0; // Token is used outside the loop, must declare similarly\n\n for (var i = 0; i < emailLength; i += token.length) {\n // Utilize codepoints to account for Unicode surrogate pairs\n token = String.fromCodePoint(email.codePointAt(i));\n\n switch (context.now) {\n // Local-part\n case internals.components.localpart:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // local-part = dot-atom / quoted-string / obs-local-part\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // obs-local-part = word *(\".\" word)\n //\n // word = atom / quoted-string\n //\n // atom = [CFWS] 1*atext [CFWS]\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments are OK at the beginning of an element\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsComment : internals.diagnoses.deprecatedComment);\n } else {\n updateResult(internals.diagnoses.cfwsComment); // Cannot start a comment in an element, should be end\n\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n if (elementLength === 0) {\n // Another dot, already?\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n if (assertEnd) {\n updateResult(internals.diagnoses.deprecatedLocalPart);\n } // CFWS & quoted strings are OK again now we're at the beginning of an element (although they are obsolete forms)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n parseData.local += token;\n atomData.locals[elementCount] = '';\n }\n\n break;\n // Quoted string\n\n case '\"':\n if (elementLength === 0) {\n // The entire local-part can be a quoted string for RFC 5321; if one atom is quoted it's an RFC 5322 obsolete form\n updateResult(elementCount === 0 ? internals.diagnoses.rfc5321QuotedString : internals.diagnoses.deprecatedLocalPart);\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8'); // Quoted string must be the entire element\n\n assertEnd = true;\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedString;\n } else {\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.cfwsFWS : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, better be end\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n\n case '@':\n // At this point we should have a valid local-part\n // $lab:coverage:off$\n if (context.stack.length !== 1) {\n throw new Error('unexpected item on context stack');\n } // $lab:coverage:on$\n\n\n if (parseData.local.length === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errNoLocalPart);\n } else if (elementLength === 0) {\n // Fatal error\n updateResult(internals.diagnoses.errDotEnd);\n } // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.1 the maximum total length of a user name or other local-part is 64\n // octets\n else if (Buffer.byteLength(parseData.local, 'utf8') > 64) {\n updateResult(internals.diagnoses.rfc5322LocalTooLong);\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1 comments and folding white space SHOULD NOT be used around \"@\" in the\n // addr-spec\n //\n // http://tools.ietf.org/html/rfc2119\n // 4. SHOULD NOT this phrase, or the phrase \"NOT RECOMMENDED\" mean that there may exist valid reasons in particular\n // circumstances when the particular behavior is acceptable or even useful, but the full implications should be understood\n // and the case carefully weighed before implementing any behavior described with this label.\n else if (context.prev === internals.components.contextComment || context.prev === internals.components.contextFWS) {\n updateResult(internals.diagnoses.deprecatedCFWSNearAt);\n } // Clear everything down for the domain parsing\n\n\n context.now = internals.components.domain;\n context.stack[0] = internals.components.domain;\n elementCount = 0;\n elementLength = 0;\n assertEnd = false; // CFWS can only appear at the end of the element\n\n break;\n // ATEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n if (assertEnd) {\n // We have encountered atext where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.contextQuotedString:\n updateResult(internals.diagnoses.errATEXTAfterQS);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n } else {\n context.prev = context.now;\n charCode = token.codePointAt(0); // Especially if charCode == 10\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n }\n\n break;\n\n case internals.components.domain:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain = dot-atom / domain-literal / obs-domain\n //\n // dot-atom = [CFWS] dot-atom-text [CFWS]\n //\n // dot-atom-text = 1*atext *(\".\" 1*atext)\n //\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-domain = atom *(\".\" atom)\n //\n // atom = [CFWS] 1*atext [CFWS]\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Mailbox = Local-part \"@\" ( Domain / address-literal )\n //\n // Domain = sub-domain *(\".\" sub-domain)\n //\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // Note: A liberal syntax for the domain portion of addr-spec is\n // given here. However, the domain portion contains addressing\n // information specified by and used in other protocols (e.g.,\n // [RFC1034], [RFC1035], [RFC1123], [RFC5321]). It is therefore\n // incumbent upon implementations to conform to the syntax of\n // addresses for the context in which they are used.\n //\n // is_email() author's note: it's not clear how to interpret this in\n // he context of a general email address validator. The conclusion I\n // have reached is this: \"addressing information\" must comply with\n // RFC 5321 (and in turn RFC 1035), anything that is \"semantically\n // invisible\" must comply only with RFC 5322.\n switch (token) {\n // Comment\n case '(':\n if (elementLength === 0) {\n // Comments at the start of the domain are deprecated in the text, comments at the start of a subdomain are obs-domain\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedComment);\n } else {\n // We can't start a comment mid-element, better be at the end\n assertEnd = true;\n updateResult(internals.diagnoses.cfwsComment);\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // Next dot-atom element\n\n case '.':\n var punycodeLength = Punycode.encode(atomData.domains[elementCount]).length;\n\n if (elementLength === 0) {\n // Another dot, already? Fatal error.\n updateResult(elementCount === 0 ? internals.diagnoses.errDotStart : internals.diagnoses.errConsecutiveDots);\n } else if (hyphenFlag) {\n // Previous subdomain ended in a hyphen. Fatal error.\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } else if (punycodeLength > 63) {\n // RFC 5890 specifies that domain labels that are encoded using the Punycode algorithm\n // must adhere to the <= 63 octet requirement.\n // This includes string prefixes from the Punycode algorithm.\n //\n // https://tools.ietf.org/html/rfc5890#section-2.3.2.1\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } // CFWS is OK again now we're at the beginning of an element (although\n // it may be obsolete CFWS)\n\n\n assertEnd = false;\n elementLength = 0;\n ++elementCount;\n atomData.domains[elementCount] = '';\n parseData.domain += token;\n break;\n // Domain literal\n\n case '[':\n if (parseData.domain.length === 0) {\n // Domain literal must be the only component\n assertEnd = true;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.stack.push(context.now);\n context.now = internals.components.literal;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n parseData.literal = '';\n } else {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n }\n\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n if (elementLength === 0) {\n updateResult(elementCount === 0 ? internals.diagnoses.deprecatedCFWSNearAt : internals.diagnoses.deprecatedFWS);\n } else {\n // We can't start FWS in the middle of an element, so this better be the end\n updateResult(internals.diagnoses.cfwsFWS);\n assertEnd = true;\n }\n\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // This must be ATEXT\n\n default:\n // RFC 5322 allows any atext...\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // atext = ALPHA / DIGIT / ; Printable US-ASCII\n // \"!\" / \"#\" / ; characters not including\n // \"$\" / \"%\" / ; specials. Used for atoms.\n // \"&\" / \"'\" /\n // \"*\" / \"+\" /\n // \"-\" / \"/\" /\n // \"=\" / \"?\" /\n // \"^\" / \"_\" /\n // \"`\" / \"{\" /\n // \"|\" / \"}\" /\n // \"~\"\n // But RFC 5321 only allows letter-digit-hyphen to comply with DNS rules\n // (RFCs 1034 & 1123)\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // sub-domain = Let-dig [Ldh-str]\n //\n // Let-dig = ALPHA / DIGIT\n //\n // Ldh-str = *( ALPHA / DIGIT / \"-\" ) Let-dig\n //\n if (assertEnd) {\n // We have encountered ATEXT where it is no longer valid\n switch (context.prev) {\n case internals.components.contextComment:\n case internals.components.contextFWS:\n updateResult(internals.diagnoses.errATEXTAfterCFWS);\n break;\n\n case internals.components.literal:\n updateResult(internals.diagnoses.errATEXTAfterDomainLiteral);\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('more atext found where none is allowed, but unrecognized prev context: ' + context.prev);\n // $lab:coverage:on$\n }\n }\n\n charCode = token.codePointAt(0); // Assume this token isn't a hyphen unless we discover it is\n\n hyphenFlag = false;\n\n if (internals.specials(charCode) || internals.c0Controls(charCode) || internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingATEXT);\n } else if (token === '-') {\n if (elementLength === 0) {\n // Hyphens cannot be at the beginning of a subdomain, fatal error\n updateResult(internals.diagnoses.errDomainHyphenStart);\n }\n\n hyphenFlag = true;\n } // Check if it's a neither a number nor a latin/unicode letter\n else if (charCode < 48 || charCode > 122 && charCode < 192 || charCode > 57 && charCode < 65 || charCode > 90 && charCode < 97) {\n // This is not an RFC 5321 subdomain, but still OK by RFC 5322\n updateResult(internals.diagnoses.rfc5322Domain);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Domain literal\n\n case internals.components.literal:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // domain-literal = [CFWS] \"[\" *([FWS] dtext) [FWS] \"]\" [CFWS]\n //\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n switch (token) {\n // End of domain literal\n case ']':\n if (maxResult < internals.categories.deprecated) {\n // Could be a valid RFC 5321 address literal, so let's check\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // address-literal = \"[\" ( IPv4-address-literal /\n // IPv6-address-literal /\n // General-address-literal ) \"]\"\n // ; See Section 4.1.3\n //\n // http://tools.ietf.org/html/rfc5321#section-4.1.3\n // IPv4-address-literal = Snum 3(\".\" Snum)\n //\n // IPv6-address-literal = \"IPv6:\" IPv6-addr\n //\n // General-address-literal = Standardized-tag \":\" 1*dcontent\n //\n // Standardized-tag = Ldh-str\n // ; Standardized-tag MUST be specified in a\n // ; Standards-Track RFC and registered with IANA\n //\n // dcontent = %d33-90 / ; Printable US-ASCII\n // %d94-126 ; excl. \"[\", \"\\\", \"]\"\n //\n // Snum = 1*3DIGIT\n // ; representing a decimal integer\n // ; value in the range 0 through 255\n //\n // IPv6-addr = IPv6-full / IPv6-comp / IPv6v4-full / IPv6v4-comp\n //\n // IPv6-hex = 1*4HEXDIG\n //\n // IPv6-full = IPv6-hex 7(\":\" IPv6-hex)\n //\n // IPv6-comp = [IPv6-hex *5(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *5(\":\" IPv6-hex)]\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 6 groups in addition to the\n // ; \"::\" may be present.\n //\n // IPv6v4-full = IPv6-hex 5(\":\" IPv6-hex) \":\" IPv4-address-literal\n //\n // IPv6v4-comp = [IPv6-hex *3(\":\" IPv6-hex)] \"::\"\n // [IPv6-hex *3(\":\" IPv6-hex) \":\"]\n // IPv4-address-literal\n // ; The \"::\" represents at least 2 16-bit groups of\n // ; zeros. No more than 4 groups in addition to the\n // ; \"::\" and IPv4-address-literal may be present.\n var index = -1;\n var addressLiteral = parseData.literal;\n var matchesIP = internals.regex.ipV4.exec(addressLiteral); // Maybe extract IPv4 part from the end of the address-literal\n\n if (matchesIP) {\n index = matchesIP.index;\n\n if (index !== 0) {\n // Convert IPv4 part to IPv6 format for futher testing\n addressLiteral = addressLiteral.slice(0, index) + '0:0';\n }\n }\n\n if (index === 0) {\n // Nothing there except a valid IPv4 address, so...\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else if (addressLiteral.slice(0, 5).toLowerCase() !== 'ipv6:') {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n } else {\n var match = addressLiteral.slice(5);\n var maxGroups = internals.maxIPv6Groups;\n var groups = match.split(':');\n index = match.indexOf('::');\n\n if (!~index) {\n // Need exactly the right number of groups\n if (groups.length !== maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6GroupCount);\n }\n } else if (index !== match.lastIndexOf('::')) {\n updateResult(internals.diagnoses.rfc5322IPv62x2xColon);\n } else {\n if (index === 0 || index === match.length - 2) {\n // RFC 4291 allows :: at the start or end of an address with 7 other groups in addition\n ++maxGroups;\n }\n\n if (groups.length > maxGroups) {\n updateResult(internals.diagnoses.rfc5322IPv6MaxGroups);\n } else if (groups.length === maxGroups) {\n // Eliding a single \"::\"\n updateResult(internals.diagnoses.deprecatedIPv6);\n }\n } // IPv6 testing strategy\n\n\n if (match[0] === ':' && match[1] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonStart);\n } else if (match[match.length - 1] === ':' && match[match.length - 2] !== ':') {\n updateResult(internals.diagnoses.rfc5322IPv6ColonEnd);\n } else if (internals.checkIpV6(groups)) {\n updateResult(internals.diagnoses.rfc5321AddressLiteral);\n } else {\n updateResult(internals.diagnoses.rfc5322IPv6BadCharacter);\n }\n }\n } else {\n updateResult(internals.diagnoses.rfc5322DomainLiteral);\n }\n\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n\n case '\\\\':\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // DTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // dtext = %d33-90 / ; Printable US-ASCII\n // %d94-126 / ; characters not including\n // obs-dtext ; \"[\", \"]\", or \"\\\"\n //\n // obs-dtext = obs-NO-WS-CTL / quoted-pair\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0); // '\\r', '\\n', ' ', and '\\t' have already been parsed above\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || token === '[') {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingDTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.rfc5322DomainLiteralOBSDText);\n }\n\n parseData.literal += token;\n parseData.domain += token;\n atomData.domains[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n }\n\n break;\n // Quoted string\n\n case internals.components.contextQuotedString:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // quoted-string = [CFWS]\n // DQUOTE *([FWS] qcontent) [FWS] DQUOTE\n // [CFWS]\n //\n // qcontent = qtext / quoted-pair\n switch (token) {\n // Quoted pair\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space. Spaces are allowed as regular characters inside a quoted string - it's only FWS if we include '\\t' or '\\r\\n'\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case '\\t':\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // Runs of FWS, comment, or CFWS that occur between lexical tokens in\n // a structured header field are semantically interpreted as a single\n // space character.\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // the CRLF in any FWS/CFWS that appears within the quoted-string [is]\n // semantically \"invisible\" and therefore not part of the\n // quoted-string\n parseData.local += ' ';\n atomData.locals[elementCount] += ' ';\n elementLength += Buffer.byteLength(token, 'utf8');\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // End of quoted string\n\n case '\"':\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // QTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.4\n // qtext = %d33 / ; Printable US-ASCII\n // %d35-91 / ; characters not including\n // %d93-126 / ; \"\\\" or the quote character\n // obs-qtext\n //\n // obs-qtext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode) || charCode === 0 || charCode === 10) {\n updateResult(internals.diagnoses.errExpectingQTEXT);\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedQTEXT);\n }\n\n parseData.local += token;\n atomData.locals[elementCount] += token;\n elementLength += Buffer.byteLength(token, 'utf8');\n } // http://tools.ietf.org/html/rfc5322#section-3.4.1\n // If the string can be represented as a dot-atom (that is, it contains\n // no characters other than atext characters or \".\" surrounded by atext\n // characters), then the dot-atom form SHOULD be used and the quoted-\n // string form SHOULD NOT be used.\n\n\n break;\n // Quoted pair\n\n case internals.components.contextQuotedPair:\n // http://tools.ietf.org/html/rfc5322#section-3.2.1\n // quoted-pair = (\"\\\" (VCHAR / WSP)) / obs-qp\n //\n // VCHAR = %d33-126 ; visible (printing) characters\n // WSP = SP / HTAB ; white space\n //\n // obs-qp = \"\\\" (%d0 / obs-NO-WS-CTL / LF / CR)\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n //\n // i.e. obs-qp = \"\\\" (%d0-8, %d10-31 / %d127)\n charCode = token.codePointAt(0);\n\n if (charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingQPair);\n } else if (charCode < 31 && charCode !== 9 || charCode === 127) {\n // ' ' and '\\t' are allowed\n updateResult(internals.diagnoses.deprecatedQP);\n } // At this point we know where this qpair occurred so we could check to see if the character actually needed to be quoted at all.\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // the sending system SHOULD transmit the form that uses the minimum quoting possible.\n\n\n context.prev = context.now; // End of qpair\n\n context.now = context.stack.pop();\n var escapeToken = '\\\\' + token;\n\n switch (context.now) {\n case internals.components.contextComment:\n break;\n\n case internals.components.contextQuotedString:\n parseData.local += escapeToken;\n atomData.locals[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n\n case internals.components.literal:\n parseData.domain += escapeToken;\n atomData.domains[elementCount] += escapeToken; // The maximum sizes specified by RFC 5321 are octet counts, so we must include the backslash\n\n elementLength += 2;\n break;\n // $lab:coverage:off$\n\n default:\n throw new Error('quoted pair logic invoked in an invalid context: ' + context.now);\n // $lab:coverage:on$\n }\n\n break;\n // Comment\n\n case internals.components.contextComment:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // comment = \"(\" *([FWS] ccontent) [FWS] \")\"\n //\n // ccontent = ctext / quoted-pair / comment\n switch (token) {\n // Nested comment\n case '(':\n // Nested comments are ok\n context.stack.push(context.now);\n context.now = internals.components.contextComment;\n break;\n // End of comment\n\n case ')':\n context.prev = context.now;\n context.now = context.stack.pop();\n break;\n // Quoted pair\n\n case '\\\\':\n context.stack.push(context.now);\n context.now = internals.components.contextQuotedPair;\n break;\n // Folding white space\n\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n break;\n }\n\n // Fallthrough\n\n case ' ':\n case '\\t':\n updateResult(internals.diagnoses.cfwsFWS);\n context.stack.push(context.now);\n context.now = internals.components.contextFWS;\n prevToken = token;\n break;\n // CTEXT\n\n default:\n // http://tools.ietf.org/html/rfc5322#section-3.2.3\n // ctext = %d33-39 / ; Printable US-ASCII\n // %d42-91 / ; characters not including\n // %d93-126 / ; \"(\", \")\", or \"\\\"\n // obs-ctext\n //\n // obs-ctext = obs-NO-WS-CTL\n //\n // obs-NO-WS-CTL = %d1-8 / ; US-ASCII control\n // %d11 / ; characters that do not\n // %d12 / ; include the carriage\n // %d14-31 / ; return, line feed, and\n // %d127 ; white space characters\n charCode = token.codePointAt(0);\n\n if (charCode === 0 || charCode === 10 || charCode !== 127 && internals.c1Controls(charCode)) {\n // Fatal error\n updateResult(internals.diagnoses.errExpectingCTEXT);\n break;\n } else if (internals.c0Controls(charCode) || charCode === 127) {\n updateResult(internals.diagnoses.deprecatedCTEXT);\n }\n\n }\n\n break;\n // Folding white space\n\n case internals.components.contextFWS:\n // http://tools.ietf.org/html/rfc5322#section-3.2.2\n // FWS = ([*WSP CRLF] 1*WSP) / obs-FWS\n // ; Folding white space\n // But note the erratum:\n // http://www.rfc-editor.org/errata_search.php?rfc=5322&eid=1908:\n // In the obsolete syntax, any amount of folding white space MAY be\n // inserted where the obs-FWS rule is allowed. This creates the\n // possibility of having two consecutive \"folds\" in a line, and\n // therefore the possibility that a line which makes up a folded header\n // field could be composed entirely of white space.\n //\n // obs-FWS = 1*([CRLF] WSP)\n if (prevToken === '\\r') {\n if (token === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFx2);\n break;\n }\n\n if (++crlfCount > 1) {\n // Multiple folds => obsolete FWS\n updateResult(internals.diagnoses.deprecatedFWS);\n } else {\n crlfCount = 1;\n }\n }\n\n switch (token) {\n case '\\r':\n if (emailLength === ++i || email[i] !== '\\n') {\n // Fatal error\n updateResult(internals.diagnoses.errCRNoLF);\n }\n\n break;\n\n case ' ':\n case '\\t':\n break;\n\n default:\n if (prevToken === '\\r') {\n // Fatal error\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n }\n\n crlfCount = 0; // End of FWS\n\n context.prev = context.now;\n context.now = context.stack.pop(); // Look at this token again in the parent context\n\n --i;\n }\n\n prevToken = token;\n break;\n // Unexpected context\n // $lab:coverage:off$\n\n default:\n throw new Error('unknown context: ' + context.now);\n // $lab:coverage:on$\n } // Primary state machine\n\n\n if (maxResult > internals.categories.rfc5322) {\n // Fatal error, no point continuing\n break;\n }\n } // Token loop\n // Check for errors\n\n\n if (maxResult < internals.categories.rfc5322) {\n var _punycodeLength = Punycode.encode(parseData.domain).length; // Fatal errors\n\n if (context.now === internals.components.contextQuotedString) {\n updateResult(internals.diagnoses.errUnclosedQuotedString);\n } else if (context.now === internals.components.contextQuotedPair) {\n updateResult(internals.diagnoses.errBackslashEnd);\n } else if (context.now === internals.components.contextComment) {\n updateResult(internals.diagnoses.errUnclosedComment);\n } else if (context.now === internals.components.literal) {\n updateResult(internals.diagnoses.errUnclosedDomainLiteral);\n } else if (token === '\\r') {\n updateResult(internals.diagnoses.errFWSCRLFEnd);\n } else if (parseData.domain.length === 0) {\n updateResult(internals.diagnoses.errNoDomain);\n } else if (elementLength === 0) {\n updateResult(internals.diagnoses.errDotEnd);\n } else if (hyphenFlag) {\n updateResult(internals.diagnoses.errDomainHyphenEnd);\n } // Other errors\n else if (_punycodeLength > 255) {\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.2\n // The maximum total length of a domain name or number is 255 octets.\n updateResult(internals.diagnoses.rfc5322DomainTooLong);\n } else if (Buffer.byteLength(parseData.local, 'utf8') + _punycodeLength +\n /* '@' */\n 1 > 254) {\n // http://tools.ietf.org/html/rfc5321#section-4.1.2\n // Forward-path = Path\n //\n // Path = \"<\" [ A-d-l \":\" ] Mailbox \">\"\n //\n // http://tools.ietf.org/html/rfc5321#section-4.5.3.1.3\n // The maximum total length of a reverse-path or forward-path is 256 octets (including the punctuation and element separators).\n //\n // Thus, even without (obsolete) routing information, the Mailbox can only be 254 characters long. This is confirmed by this verified\n // erratum to RFC 3696:\n //\n // http://www.rfc-editor.org/errata_search.php?rfc=3696&eid=1690\n // However, there is a restriction in RFC 2821 on the length of an address in MAIL and RCPT commands of 254 characters. Since\n // addresses that do not fit in those fields are not normally useful, the upper limit on address lengths should normally be considered\n // to be 254.\n updateResult(internals.diagnoses.rfc5322TooLong);\n } else if (elementLength > 63) {\n // http://tools.ietf.org/html/rfc1035#section-2.3.4\n // labels 63 octets or less\n updateResult(internals.diagnoses.rfc5322LabelTooLong);\n } else if (options.minDomainAtoms && atomData.domains.length < options.minDomainAtoms) {\n updateResult(internals.diagnoses.errDomainTooShort);\n } else if (options.tldWhitelist || options.tldBlacklist) {\n var tldAtom = atomData.domains[elementCount];\n\n if (!internals.validDomain(tldAtom, options)) {\n updateResult(internals.diagnoses.errUnknownTLD);\n }\n }\n } // Check for errors\n // Finish\n\n\n if (maxResult < internals.categories.dnsWarn) {\n // Per RFC 5321, domain atoms are limited to letter-digit-hyphen, so we only need to check code <= 57 to check for a digit\n var code = atomData.domains[elementCount].codePointAt(0);\n\n if (code <= 57) {\n updateResult(internals.diagnoses.rfc5321TLDNumeric);\n }\n }\n\n if (maxResult < threshold) {\n maxResult = internals.diagnoses.valid;\n }\n\n var finishResult = diagnose ? maxResult : maxResult < internals.defaultThreshold; // $lab:coverage:off$\n\n if (callback) {\n callback(finishResult);\n } // $lab:coverage:on$\n\n\n return finishResult;\n };\n\n exports.diagnoses = internals.validate.diagnoses = function () {\n var diag = {};\n var keys = Object.keys(internals.diagnoses);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n diag[key] = internals.diagnoses[key];\n }\n\n return diag;\n }();\n\n exports.normalize = internals.normalize;\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 20 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n // Declare internals\n\n var internals = {};\n exports.errors = {\n root: 'value',\n key: '\"{{!label}}\" ',\n messages: {\n wrapArrays: true\n },\n any: {\n unknown: 'is not allowed',\n invalid: 'contains an invalid value',\n empty: 'is not allowed to be empty',\n required: 'is required',\n allowOnly: 'must be one of {{valids}}',\n default: 'threw an error when running default method'\n },\n alternatives: {\n base: 'not matching any of the allowed alternatives',\n child: null\n },\n array: {\n base: 'must be an array',\n includes: 'at position {{pos}} does not match any of the allowed types',\n includesSingle: 'single value of \"{{!label}}\" does not match any of the allowed types',\n includesOne: 'at position {{pos}} fails because {{reason}}',\n includesOneSingle: 'single value of \"{{!label}}\" fails because {{reason}}',\n includesRequiredUnknowns: 'does not contain {{unknownMisses}} required value(s)',\n includesRequiredKnowns: 'does not contain {{knownMisses}}',\n includesRequiredBoth: 'does not contain {{knownMisses}} and {{unknownMisses}} other required value(s)',\n excludes: 'at position {{pos}} contains an excluded value',\n excludesSingle: 'single value of \"{{!label}}\" contains an excluded value',\n min: 'must contain at least {{limit}} items',\n max: 'must contain less than or equal to {{limit}} items',\n length: 'must contain {{limit}} items',\n ordered: 'at position {{pos}} fails because {{reason}}',\n orderedLength: 'at position {{pos}} fails because array must contain at most {{limit}} items',\n ref: 'references \"{{ref}}\" which is not a positive integer',\n sparse: 'must not be a sparse array',\n unique: 'position {{pos}} contains a duplicate value'\n },\n boolean: {\n base: 'must be a boolean'\n },\n binary: {\n base: 'must be a buffer or a string',\n min: 'must be at least {{limit}} bytes',\n max: 'must be less than or equal to {{limit}} bytes',\n length: 'must be {{limit}} bytes'\n },\n date: {\n base: 'must be a number of milliseconds or valid date string',\n format: 'must be a string with one of the following formats {{format}}',\n strict: 'must be a valid date',\n min: 'must be larger than or equal to \"{{limit}}\"',\n max: 'must be less than or equal to \"{{limit}}\"',\n less: 'must be less than \"{{limit}}\"',\n greater: 'must be greater than \"{{limit}}\"',\n isoDate: 'must be a valid ISO 8601 date',\n timestamp: {\n javascript: 'must be a valid timestamp or number of milliseconds',\n unix: 'must be a valid timestamp or number of seconds'\n },\n ref: 'references \"{{ref}}\" which is not a date'\n },\n function: {\n base: 'must be a Function',\n arity: 'must have an arity of {{n}}',\n minArity: 'must have an arity greater or equal to {{n}}',\n maxArity: 'must have an arity lesser or equal to {{n}}',\n ref: 'must be a Joi reference',\n class: 'must be a class'\n },\n lazy: {\n base: '!!schema error: lazy schema must be set',\n schema: '!!schema error: lazy schema function must return a schema'\n },\n object: {\n base: 'must be an object',\n child: '!!child \"{{!child}}\" fails because {{reason}}',\n min: 'must have at least {{limit}} children',\n max: 'must have less than or equal to {{limit}} children',\n length: 'must have {{limit}} children',\n allowUnknown: '!!\"{{!child}}\" is not allowed',\n with: '!!\"{{mainWithLabel}}\" missing required peer \"{{peerWithLabel}}\"',\n without: '!!\"{{mainWithLabel}}\" conflict with forbidden peer \"{{peerWithLabel}}\"',\n missing: 'must contain at least one of {{peersWithLabels}}',\n xor: 'contains a conflict between exclusive peers {{peersWithLabels}}',\n or: 'must contain at least one of {{peersWithLabels}}',\n and: 'contains {{presentWithLabels}} without its required peers {{missingWithLabels}}',\n nand: '!!\"{{mainWithLabel}}\" must not exist simultaneously with {{peersWithLabels}}',\n assert: '!!\"{{ref}}\" validation failed because \"{{ref}}\" failed to {{message}}',\n rename: {\n multiple: 'cannot rename child \"{{from}}\" because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename child \"{{from}}\" because override is disabled and target \"{{to}}\" exists',\n regex: {\n multiple: 'cannot rename children {{from}} because multiple renames are disabled and another key was already renamed to \"{{to}}\"',\n override: 'cannot rename children {{from}} because override is disabled and target \"{{to}}\" exists'\n }\n },\n type: 'must be an instance of \"{{type}}\"',\n schema: 'must be a Joi instance'\n },\n number: {\n base: 'must be a number',\n min: 'must be larger than or equal to {{limit}}',\n max: 'must be less than or equal to {{limit}}',\n less: 'must be less than {{limit}}',\n greater: 'must be greater than {{limit}}',\n float: 'must be a float or double',\n integer: 'must be an integer',\n negative: 'must be a negative number',\n positive: 'must be a positive number',\n precision: 'must have no more than {{limit}} decimal places',\n ref: 'references \"{{ref}}\" which is not a number',\n multiple: 'must be a multiple of {{multiple}}',\n port: 'must be a valid port'\n },\n string: {\n base: 'must be a string',\n min: 'length must be at least {{limit}} characters long',\n max: 'length must be less than or equal to {{limit}} characters long',\n length: 'length must be {{limit}} characters long',\n alphanum: 'must only contain alpha-numeric characters',\n token: 'must only contain alpha-numeric and underscore characters',\n regex: {\n base: 'with value \"{{!value}}\" fails to match the required pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" fails to match the {{name}} pattern',\n invert: {\n base: 'with value \"{{!value}}\" matches the inverted pattern: {{pattern}}',\n name: 'with value \"{{!value}}\" matches the inverted {{name}} pattern'\n }\n },\n email: 'must be a valid email',\n uri: 'must be a valid uri',\n uriRelativeOnly: 'must be a valid relative uri',\n uriCustomScheme: 'must be a valid uri with a scheme matching the {{scheme}} pattern',\n isoDate: 'must be a valid ISO 8601 date',\n guid: 'must be a valid GUID',\n hex: 'must only contain hexadecimal characters',\n hexAlign: 'hex decoded representation must be byte aligned',\n base64: 'must be a valid base64 string',\n hostname: 'must be a valid hostname',\n normalize: 'must be unicode normalized in the {{form}} form',\n lowercase: 'must only contain lowercase characters',\n uppercase: 'must only contain uppercase characters',\n trim: 'must not have leading or trailing whitespace',\n creditCard: 'must be a credit card',\n ref: 'references \"{{ref}}\" which is not a number',\n ip: 'must be a valid ip address with a {{cidr}} CIDR',\n ipVersion: 'must be a valid ip address of one of the following versions {{version}} with a {{cidr}} CIDR'\n }\n };\n /***/\n },\n /* 21 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Joi = __webpack_require__(8); // Declare internals\n\n\n var internals = {};\n exports.options = Joi.object({\n abortEarly: Joi.boolean(),\n convert: Joi.boolean(),\n allowUnknown: Joi.boolean(),\n skipFunctions: Joi.boolean(),\n stripUnknown: [Joi.boolean(), Joi.object({\n arrays: Joi.boolean(),\n objects: Joi.boolean()\n }).or('arrays', 'objects')],\n language: Joi.object(),\n presence: Joi.string().only('required', 'optional', 'forbidden', 'ignore'),\n raw: Joi.boolean(),\n context: Joi.object(),\n strip: Joi.boolean(),\n noDefaults: Joi.boolean(),\n escapeHtml: Joi.boolean()\n }).strict();\n /***/\n },\n /* 22 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Cast = __webpack_require__(4);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.fastSplice = function (arr, i) {\n var pos = i;\n\n while (pos < arr.length) {\n arr[pos++] = arr[pos];\n }\n\n --arr.length;\n };\n\n internals.Array = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'array';\n _this._inner.items = [];\n _this._inner.ordereds = [];\n _this._inner.inclusions = [];\n _this._inner.exclusions = [];\n _this._inner.requireds = [];\n _this._flags.sparse = false;\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n internals.safeParse(value, result);\n }\n\n var isArray = Array.isArray(result.value);\n var wasArray = isArray;\n\n if (options.convert && this._flags.single && !isArray) {\n result.value = [result.value];\n isArray = true;\n }\n\n if (!isArray) {\n result.errors = this.createError('array.base', null, state, options);\n return result;\n }\n\n if (this._inner.inclusions.length || this._inner.exclusions.length || this._inner.requireds.length || this._inner.ordereds.length || !this._flags.sparse) {\n // Clone the array so that we don't modify the original\n if (wasArray) {\n result.value = result.value.slice(0);\n }\n\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors && wasArray && options.convert && this._flags.single) {\n // Attempt a 2nd pass by putting the array inside one.\n var previousErrors = result.errors;\n result.value = [result.value];\n result.errors = this._checkItems.call(this, result.value, wasArray, state, options);\n\n if (result.errors) {\n // Restore previous errors and value since this didn't validate either.\n result.errors = previousErrors;\n result.value = result.value[0];\n }\n }\n }\n\n return result;\n };\n\n _class.prototype._checkItems = function _checkItems(items, wasArray, state, options) {\n var errors = [];\n var errored = void 0;\n\n var requireds = this._inner.requireds.slice();\n\n var ordereds = this._inner.ordereds.slice();\n\n var inclusions = this._inner.inclusions.concat(requireds);\n\n var il = items.length;\n\n for (var i = 0; i < il; ++i) {\n errored = false;\n var item = items[i];\n var isValid = false;\n var key = wasArray ? i : state.key;\n var path = wasArray ? state.path.concat(i) : state.path;\n var localState = {\n key: key,\n path: path,\n parent: state.parent,\n reference: state.reference\n };\n var res = void 0; // Sparse\n\n if (!this._flags.sparse && item === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n ordereds.shift();\n continue;\n } // Exclusions\n\n\n for (var j = 0; j < this._inner.exclusions.length; ++j) {\n res = this._inner.exclusions[j]._validate(item, localState, {}); // Not passing options to use defaults\n\n if (!res.errors) {\n errors.push(this.createError(wasArray ? 'array.excludes' : 'array.excludesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n ordereds.shift();\n break;\n }\n }\n\n if (errored) {\n continue;\n } // Ordered\n\n\n if (this._inner.ordereds.length) {\n if (ordereds.length > 0) {\n var ordered = ordereds.shift();\n res = ordered._validate(item, localState, options);\n\n if (!res.errors) {\n if (ordered._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n } else {\n items[i] = res.value;\n }\n } else {\n errors.push(this.createError('array.ordered', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n continue;\n } else if (!this._inner.items.length) {\n errors.push(this.createError('array.orderedLength', {\n pos: i,\n limit: this._inner.ordereds.length\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n\n continue;\n }\n } // Requireds\n\n\n var requiredChecks = [];\n var jl = requireds.length;\n\n for (var _j = 0; _j < jl; ++_j) {\n res = requiredChecks[_j] = requireds[_j]._validate(item, localState, options);\n\n if (!res.errors) {\n items[i] = res.value;\n isValid = true;\n internals.fastSplice(requireds, _j);\n --_j;\n --jl;\n\n if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n\n break;\n }\n }\n\n if (isValid) {\n continue;\n } // Inclusions\n\n\n var stripUnknown = options.stripUnknown ? options.stripUnknown === true ? true : !!options.stripUnknown.arrays : false;\n jl = inclusions.length;\n\n for (var _j2 = 0; _j2 < jl; ++_j2) {\n var inclusion = inclusions[_j2]; // Avoid re-running requireds that already didn't match in the previous loop\n\n var previousCheck = requireds.indexOf(inclusion);\n\n if (previousCheck !== -1) {\n res = requiredChecks[previousCheck];\n } else {\n res = inclusion._validate(item, localState, options);\n\n if (!res.errors) {\n if (inclusion._flags.strip) {\n internals.fastSplice(items, i);\n --i;\n --il;\n } else if (!this._flags.sparse && res.value === undefined) {\n errors.push(this.createError('array.sparse', null, {\n key: state.key,\n path: localState.path,\n pos: i\n }, options));\n errored = true;\n } else {\n items[i] = res.value;\n }\n\n isValid = true;\n break;\n }\n } // Return the actual error if only one inclusion defined\n\n\n if (jl === 1) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n isValid = true;\n break;\n }\n\n errors.push(this.createError(wasArray ? 'array.includesOne' : 'array.includesOneSingle', {\n pos: i,\n reason: res.errors,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n errored = true;\n\n if (options.abortEarly) {\n return errors;\n }\n\n break;\n }\n }\n\n if (errored) {\n continue;\n }\n\n if (this._inner.inclusions.length && !isValid) {\n if (stripUnknown) {\n internals.fastSplice(items, i);\n --i;\n --il;\n continue;\n }\n\n errors.push(this.createError(wasArray ? 'array.includes' : 'array.includesSingle', {\n pos: i,\n value: item\n }, {\n key: state.key,\n path: localState.path\n }, options));\n\n if (options.abortEarly) {\n return errors;\n }\n }\n }\n\n if (requireds.length) {\n this._fillMissedErrors.call(this, errors, requireds, state, options);\n }\n\n if (ordereds.length) {\n this._fillOrderedErrors.call(this, errors, ordereds, state, options);\n }\n\n return errors.length ? errors : null;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n\n if (this._inner.ordereds.length) {\n description.orderedItems = [];\n\n for (var i = 0; i < this._inner.ordereds.length; ++i) {\n description.orderedItems.push(this._inner.ordereds[i].describe());\n }\n }\n\n if (this._inner.items.length) {\n description.items = [];\n\n for (var _i = 0; _i < this._inner.items.length; ++_i) {\n description.items.push(this._inner.items[_i].describe());\n }\n }\n\n return description;\n };\n\n _class.prototype.items = function items() {\n var _this2 = this;\n\n var obj = this.clone();\n\n for (var _len = arguments.length, schemas = Array(_len), _key = 0; _key < _len; _key++) {\n schemas[_key] = arguments[_key];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this2._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.items.push(type);\n\n if (type._flags.presence === 'required') {\n obj._inner.requireds.push(type);\n } else if (type._flags.presence === 'forbidden') {\n obj._inner.exclusions.push(type.optional());\n } else {\n obj._inner.inclusions.push(type);\n }\n });\n return obj;\n };\n\n _class.prototype.ordered = function ordered() {\n var _this3 = this;\n\n var obj = this.clone();\n\n for (var _len2 = arguments.length, schemas = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n schemas[_key2] = arguments[_key2];\n }\n\n Hoek.flatten(schemas).forEach(function (type, index) {\n try {\n type = Cast.schema(_this3._currentJoi, type);\n } catch (castErr) {\n if (castErr.hasOwnProperty('path')) {\n castErr.path = index + '.' + castErr.path;\n } else {\n castErr.path = index;\n }\n\n castErr.message = castErr.message + '(' + castErr.path + ')';\n throw castErr;\n }\n\n obj._inner.ordereds.push(type);\n });\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('min', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length >= compareTo) {\n return value;\n }\n\n return this.createError('array.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('max', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length <= compareTo) {\n return value;\n }\n\n return this.createError('array.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n return this._test('length', limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(Number.isSafeInteger(compareTo) && compareTo >= 0)) {\n return this.createError('array.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (value.length === compareTo) {\n return value;\n }\n\n return this.createError('array.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.unique = function unique(comparator) {\n Hoek.assert(comparator === undefined || typeof comparator === 'function' || typeof comparator === 'string', 'comparator must be a function or a string');\n var settings = {};\n\n if (typeof comparator === 'string') {\n settings.path = comparator;\n } else if (typeof comparator === 'function') {\n settings.comparator = comparator;\n }\n\n return this._test('unique', settings, function (value, state, options) {\n var found = {\n string: Object.create(null),\n number: Object.create(null),\n undefined: Object.create(null),\n boolean: Object.create(null),\n object: new Map(),\n function: new Map(),\n custom: new Map()\n };\n var compare = settings.comparator || Hoek.deepEqual;\n\n for (var i = 0; i < value.length; ++i) {\n var item = settings.path ? Hoek.reach(value[i], settings.path) : value[i];\n var records = settings.comparator ? found.custom : found[typeof item === 'undefined' ? 'undefined' : _typeof(item)]; // All available types are supported, so it's not possible to reach 100% coverage without ignoring this line.\n // I still want to keep the test for future js versions with new types (eg. Symbol).\n\n if (\n /* $lab:coverage:off$ */\n records\n /* $lab:coverage:on$ */\n ) {\n if (records instanceof Map) {\n var entries = records.entries();\n var current = void 0;\n\n while (!(current = entries.next()).done) {\n if (compare(current.value[0], item)) {\n var localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var context = {\n pos: i,\n value: value[i],\n dupePos: current.value[1],\n dupeValue: value[current.value[1]]\n };\n\n if (settings.path) {\n context.path = settings.path;\n }\n\n return this.createError('array.unique', context, localState, options);\n }\n }\n\n records.set(item, i);\n } else {\n if (records[item] !== undefined) {\n var _localState = {\n key: state.key,\n path: state.path.concat(i),\n parent: state.parent,\n reference: state.reference\n };\n var _context = {\n pos: i,\n value: value[i],\n dupePos: records[item],\n dupeValue: value[records[item]]\n };\n\n if (settings.path) {\n _context.path = settings.path;\n }\n\n return this.createError('array.unique', _context, _localState, options);\n }\n\n records[item] = i;\n }\n }\n }\n\n return value;\n });\n };\n\n _class.prototype.sparse = function sparse(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.sparse === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.sparse = value;\n return obj;\n };\n\n _class.prototype.single = function single(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.single === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.single = value;\n return obj;\n };\n\n _class.prototype._fillMissedErrors = function _fillMissedErrors(errors, requireds, state, options) {\n var knownMisses = [];\n var unknownMisses = 0;\n\n for (var i = 0; i < requireds.length; ++i) {\n var label = requireds[i]._getLabel();\n\n if (label) {\n knownMisses.push(label);\n } else {\n ++unknownMisses;\n }\n }\n\n if (knownMisses.length) {\n if (unknownMisses) {\n errors.push(this.createError('array.includesRequiredBoth', {\n knownMisses: knownMisses,\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n } else {\n errors.push(this.createError('array.includesRequiredKnowns', {\n knownMisses: knownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n } else {\n errors.push(this.createError('array.includesRequiredUnknowns', {\n unknownMisses: unknownMisses\n }, {\n key: state.key,\n path: state.path\n }, options));\n }\n };\n\n _class.prototype._fillOrderedErrors = function _fillOrderedErrors(errors, ordereds, state, options) {\n var requiredOrdereds = [];\n\n for (var i = 0; i < ordereds.length; ++i) {\n var presence = Hoek.reach(ordereds[i], '_flags.presence');\n\n if (presence === 'required') {\n requiredOrdereds.push(ordereds[i]);\n }\n }\n\n if (requiredOrdereds.length) {\n this._fillMissedErrors.call(this, errors, requiredOrdereds, state, options);\n }\n };\n\n return _class;\n }(Any);\n\n internals.safeParse = function (value, result) {\n try {\n var converted = JSON.parse(value);\n\n if (Array.isArray(converted)) {\n result.value = converted;\n }\n } catch (e) {}\n };\n\n module.exports = new internals.Array();\n /***/\n },\n /* 23 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Binary = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'binary';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n try {\n result.value = Buffer.from(value, this._flags.encoding);\n } catch (e) {}\n }\n\n result.errors = Buffer.isBuffer(result.value) ? null : this.createError('binary.base', null, state, options);\n return result;\n };\n\n _class.prototype.encoding = function encoding(_encoding) {\n Hoek.assert(Buffer.isEncoding(_encoding), 'Invalid encoding:', _encoding);\n\n if (this._flags.encoding === _encoding) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.encoding = _encoding;\n return obj;\n };\n\n _class.prototype.min = function min(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('min', limit, function (value, state, options) {\n if (value.length >= limit) {\n return value;\n }\n\n return this.createError('binary.min', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.max = function max(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('max', limit, function (value, state, options) {\n if (value.length <= limit) {\n return value;\n }\n\n return this.createError('binary.max', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.length = function length(limit) {\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0, 'limit must be a positive integer');\n return this._test('length', limit, function (value, state, options) {\n if (value.length === limit) {\n return value;\n }\n\n return this.createError('binary.length', {\n limit: limit,\n value: value\n }, state, options);\n });\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Binary();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 24 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n Set: __webpack_require__(9)\n };\n\n internals.Boolean = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'boolean';\n _this._flags.insensitive = true;\n _this._inner.truthySet = new internals.Set();\n _this._inner.falsySet = new internals.Set();\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var normalized = this._flags.insensitive ? value.toLowerCase() : value;\n result.value = normalized === 'true' ? true : normalized === 'false' ? false : value;\n }\n\n if (typeof result.value !== 'boolean') {\n result.value = this._inner.truthySet.has(value, null, null, this._flags.insensitive) ? true : this._inner.falsySet.has(value, null, null, this._flags.insensitive) ? false : value;\n }\n\n result.errors = typeof result.value === 'boolean' ? null : this.createError('boolean.base', null, state, options);\n return result;\n };\n\n _class.prototype.truthy = function truthy() {\n for (var _len = arguments.length, values = Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call truthy with undefined');\n\n obj._inner.truthySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.falsy = function falsy() {\n for (var _len2 = arguments.length, values = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n values[_key2] = arguments[_key2];\n }\n\n var obj = this.clone();\n values = Hoek.flatten(values);\n\n for (var i = 0; i < values.length; ++i) {\n var value = values[i];\n Hoek.assert(value !== undefined, 'Cannot call falsy with undefined');\n\n obj._inner.falsySet.add(value);\n }\n\n return obj;\n };\n\n _class.prototype.insensitive = function insensitive(enabled) {\n var insensitive = enabled === undefined ? true : !!enabled;\n\n if (this._flags.insensitive === insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = insensitive;\n return obj;\n };\n\n _class.prototype.describe = function describe() {\n var description = Any.prototype.describe.call(this);\n description.truthy = [true].concat(this._inner.truthySet.values());\n description.falsy = [false].concat(this._inner.falsySet.values());\n return description;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Boolean();\n /***/\n },\n /* 25 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Hoek = __webpack_require__(0);\n\n var ObjectType = __webpack_require__(13);\n\n var Ref = __webpack_require__(1); // Declare internals\n\n\n var internals = {};\n\n internals.Func = function (_ObjectType$construct) {\n _inherits(_class, _ObjectType$construct);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _ObjectType$construct.call(this));\n\n _this._flags.func = true;\n return _this;\n }\n\n _class.prototype.arity = function arity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('arity', n, function (value, state, options) {\n if (value.length === n) {\n return value;\n }\n\n return this.createError('function.arity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.minArity = function minArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n > 0, 'n must be a strict positive integer');\n return this._test('minArity', n, function (value, state, options) {\n if (value.length >= n) {\n return value;\n }\n\n return this.createError('function.minArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.maxArity = function maxArity(n) {\n Hoek.assert(Number.isSafeInteger(n) && n >= 0, 'n must be a positive integer');\n return this._test('maxArity', n, function (value, state, options) {\n if (value.length <= n) {\n return value;\n }\n\n return this.createError('function.maxArity', {\n n: n\n }, state, options);\n });\n };\n\n _class.prototype.ref = function ref() {\n return this._test('ref', null, function (value, state, options) {\n if (Ref.isRef(value)) {\n return value;\n }\n\n return this.createError('function.ref', null, state, options);\n });\n };\n\n _class.prototype.class = function _class() {\n return this._test('class', null, function (value, state, options) {\n if (/^\\s*class\\s/.test(value.toString())) {\n return value;\n }\n\n return this.createError('function.class', null, state, options);\n });\n };\n\n return _class;\n }(ObjectType.constructor);\n\n module.exports = new internals.Func();\n /***/\n },\n /* 26 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n internals.Lazy = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'lazy';\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n value: value\n };\n var lazy = this._flags.lazy;\n\n if (!lazy) {\n result.errors = this.createError('lazy.base', null, state, options);\n return result;\n }\n\n var schema = lazy();\n\n if (!(schema instanceof Any)) {\n result.errors = this.createError('lazy.schema', null, state, options);\n return result;\n }\n\n return schema._validate(value, state, options);\n };\n\n _class.prototype.set = function set(fn) {\n Hoek.assert(typeof fn === 'function', 'You must provide a function as first argument');\n var obj = this.clone();\n obj._flags.lazy = fn;\n return obj;\n };\n\n return _class;\n }(Any);\n\n module.exports = new internals.Lazy();\n /***/\n },\n /* 27 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {\n precisionRx: /(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/\n };\n\n internals.Number = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'number';\n\n _this._invalids.add(Infinity);\n\n _this._invalids.add(-Infinity);\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n var result = {\n errors: null,\n value: value\n };\n\n if (typeof value === 'string' && options.convert) {\n var number = parseFloat(value);\n result.value = isNaN(number) || !isFinite(value) ? NaN : number;\n }\n\n var isNumber = typeof result.value === 'number' && !isNaN(result.value);\n\n if (options.convert && 'precision' in this._flags && isNumber) {\n // This is conceptually equivalent to using toFixed but it should be much faster\n var precision = Math.pow(10, this._flags.precision);\n result.value = Math.round(result.value * precision) / precision;\n }\n\n result.errors = isNumber ? null : this.createError('number.base', null, state, options);\n return result;\n };\n\n _class.prototype.multiple = function multiple(base) {\n var isRef = Ref.isRef(base);\n\n if (!isRef) {\n Hoek.assert(typeof base === 'number' && isFinite(base), 'multiple must be a number');\n Hoek.assert(base > 0, 'multiple must be greater than 0');\n }\n\n return this._test('multiple', base, function (value, state, options) {\n var divisor = isRef ? base(state.reference || state.parent, options) : base;\n\n if (isRef && (typeof divisor !== 'number' || !isFinite(divisor))) {\n return this.createError('number.ref', {\n ref: base.key\n }, state, options);\n }\n\n if (value % divisor === 0) {\n return value;\n }\n\n return this.createError('number.multiple', {\n multiple: base,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.integer = function integer() {\n return this._test('integer', undefined, function (value, state, options) {\n return Number.isSafeInteger(value) ? value : this.createError('number.integer', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.negative = function negative() {\n return this._test('negative', undefined, function (value, state, options) {\n if (value < 0) {\n return value;\n }\n\n return this.createError('number.negative', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.positive = function positive() {\n return this._test('positive', undefined, function (value, state, options) {\n if (value > 0) {\n return value;\n }\n\n return this.createError('number.positive', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.precision = function precision(limit) {\n Hoek.assert(Number.isSafeInteger(limit), 'limit must be an integer');\n Hoek.assert(!('precision' in this._flags), 'precision already set');\n\n var obj = this._test('precision', limit, function (value, state, options) {\n var places = value.toString().match(internals.precisionRx);\n var decimals = Math.max((places[1] ? places[1].length : 0) - (places[2] ? parseInt(places[2], 10) : 0), 0);\n\n if (decimals <= limit) {\n return value;\n }\n\n return this.createError('number.precision', {\n limit: limit,\n value: value\n }, state, options);\n });\n\n obj._flags.precision = limit;\n return obj;\n };\n\n _class.prototype.port = function port() {\n return this._test('port', undefined, function (value, state, options) {\n if (!Number.isSafeInteger(value) || value < 0 || value > 65535) {\n return this.createError('number.port', {\n value: value\n }, state, options);\n }\n\n return value;\n });\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit) {\n var isRef = Ref.isRef(limit);\n var isNumber = typeof limit === 'number' && !isNaN(limit);\n Hoek.assert(isNumber || isRef, 'limit must be a number or reference');\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!(typeof compareTo === 'number' && !isNaN(compareTo))) {\n return this.createError('number.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo)) {\n return value;\n }\n\n return this.createError('number.' + type, {\n limit: compareTo,\n value: value\n }, state, options);\n });\n };\n };\n\n internals.Number.prototype.min = internals.compare('min', function (value, limit) {\n return value >= limit;\n });\n internals.Number.prototype.max = internals.compare('max', function (value, limit) {\n return value <= limit;\n });\n internals.Number.prototype.greater = internals.compare('greater', function (value, limit) {\n return value > limit;\n });\n internals.Number.prototype.less = internals.compare('less', function (value, limit) {\n return value < limit;\n });\n module.exports = new internals.Number();\n /***/\n },\n /* 28 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n /* WEBPACK VAR INJECTION */\n\n (function (Buffer) {\n // Load modules\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _defaults(obj, defaults) {\n var keys = Object.getOwnPropertyNames(defaults);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = Object.getOwnPropertyDescriptor(defaults, key);\n\n if (value && value.configurable && obj[key] === undefined) {\n Object.defineProperty(obj, key, value);\n }\n }\n\n return obj;\n }\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n }\n\n function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : _defaults(subClass, superClass);\n }\n\n var Net = __webpack_require__(15);\n\n var Hoek = __webpack_require__(0);\n\n var Isemail = void 0; // Loaded on demand\n\n var Any = __webpack_require__(2);\n\n var Ref = __webpack_require__(1);\n\n var JoiDate = __webpack_require__(12);\n\n var Uri = __webpack_require__(30);\n\n var Ip = __webpack_require__(29); // Declare internals\n\n\n var internals = {\n uriRegex: Uri.createUriRegex(),\n ipRegex: Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], 'optional'),\n guidBrackets: {\n '{': '}',\n '[': ']',\n '(': ')',\n '': ''\n },\n guidVersions: {\n uuidv1: '1',\n uuidv2: '2',\n uuidv3: '3',\n uuidv4: '4',\n uuidv5: '5'\n },\n cidrPresences: ['required', 'optional', 'forbidden'],\n normalizationForms: ['NFC', 'NFD', 'NFKC', 'NFKD']\n };\n\n internals.String = function (_Any) {\n _inherits(_class, _Any);\n\n function _class() {\n _classCallCheck(this, _class);\n\n var _this = _possibleConstructorReturn(this, _Any.call(this));\n\n _this._type = 'string';\n\n _this._invalids.add('');\n\n return _this;\n }\n\n _class.prototype._base = function _base(value, state, options) {\n if (typeof value === 'string' && options.convert) {\n if (this._flags.normalize) {\n value = value.normalize(this._flags.normalize);\n }\n\n if (this._flags.case) {\n value = this._flags.case === 'upper' ? value.toLocaleUpperCase() : value.toLocaleLowerCase();\n }\n\n if (this._flags.trim) {\n value = value.trim();\n }\n\n if (this._inner.replacements) {\n for (var i = 0; i < this._inner.replacements.length; ++i) {\n var replacement = this._inner.replacements[i];\n value = value.replace(replacement.pattern, replacement.replacement);\n }\n }\n\n if (this._flags.truncate) {\n for (var _i = 0; _i < this._tests.length; ++_i) {\n var test = this._tests[_i];\n\n if (test.name === 'max') {\n value = value.slice(0, test.arg);\n break;\n }\n }\n }\n\n if (this._flags.byteAligned && value.length % 2 !== 0) {\n value = '0' + value;\n }\n }\n\n return {\n value: value,\n errors: typeof value === 'string' ? null : this.createError('string.base', {\n value: value\n }, state, options)\n };\n };\n\n _class.prototype.insensitive = function insensitive() {\n if (this._flags.insensitive) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.insensitive = true;\n return obj;\n };\n\n _class.prototype.creditCard = function creditCard() {\n return this._test('creditCard', undefined, function (value, state, options) {\n var i = value.length;\n var sum = 0;\n var mul = 1;\n\n while (i--) {\n var char = value.charAt(i) * mul;\n sum = sum + (char - (char > 9) * 9);\n mul = mul ^ 3;\n }\n\n var check = sum % 10 === 0 && sum > 0;\n return check ? value : this.createError('string.creditCard', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.regex = function regex(pattern, patternOptions) {\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n var patternObject = {\n pattern: new RegExp(pattern.source, pattern.ignoreCase ? 'i' : undefined) // Future version should break this and forbid unsupported regex flags\n\n };\n\n if (typeof patternOptions === 'string') {\n patternObject.name = patternOptions;\n } else if ((typeof patternOptions === 'undefined' ? 'undefined' : _typeof(patternOptions)) === 'object') {\n patternObject.invert = !!patternOptions.invert;\n\n if (patternOptions.name) {\n patternObject.name = patternOptions.name;\n }\n }\n\n var errorCode = ['string.regex', patternObject.invert ? '.invert' : '', patternObject.name ? '.name' : '.base'].join('');\n return this._test('regex', patternObject, function (value, state, options) {\n var patternMatch = patternObject.pattern.test(value);\n\n if (patternMatch ^ patternObject.invert) {\n return value;\n }\n\n return this.createError(errorCode, {\n name: patternObject.name,\n pattern: patternObject.pattern,\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.alphanum = function alphanum() {\n return this._test('alphanum', undefined, function (value, state, options) {\n if (/^[a-zA-Z0-9]+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.alphanum', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.token = function token() {\n return this._test('token', undefined, function (value, state, options) {\n if (/^\\w+$/.test(value)) {\n return value;\n }\n\n return this.createError('string.token', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.email = function email(isEmailOptions) {\n if (isEmailOptions) {\n Hoek.assert((typeof isEmailOptions === 'undefined' ? 'undefined' : _typeof(isEmailOptions)) === 'object', 'email options must be an object');\n Hoek.assert(typeof isEmailOptions.checkDNS === 'undefined', 'checkDNS option is not supported');\n Hoek.assert(typeof isEmailOptions.tldWhitelist === 'undefined' || _typeof(isEmailOptions.tldWhitelist) === 'object', 'tldWhitelist must be an array or object');\n Hoek.assert(typeof isEmailOptions.minDomainAtoms === 'undefined' || Number.isSafeInteger(isEmailOptions.minDomainAtoms) && isEmailOptions.minDomainAtoms > 0, 'minDomainAtoms must be a positive integer');\n Hoek.assert(typeof isEmailOptions.errorLevel === 'undefined' || typeof isEmailOptions.errorLevel === 'boolean' || Number.isSafeInteger(isEmailOptions.errorLevel) && isEmailOptions.errorLevel >= 0, 'errorLevel must be a non-negative integer or boolean');\n }\n\n return this._test('email', isEmailOptions, function (value, state, options) {\n Isemail = Isemail || __webpack_require__(19);\n\n try {\n var result = Isemail.validate(value, isEmailOptions);\n\n if (result === true || result === 0) {\n return value;\n }\n } catch (e) {}\n\n return this.createError('string.email', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.ip = function ip() {\n var ipOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var regex = internals.ipRegex;\n Hoek.assert((typeof ipOptions === 'undefined' ? 'undefined' : _typeof(ipOptions)) === 'object', 'options must be an object');\n\n if (ipOptions.cidr) {\n Hoek.assert(typeof ipOptions.cidr === 'string', 'cidr must be a string');\n ipOptions.cidr = ipOptions.cidr.toLowerCase();\n Hoek.assert(Hoek.contain(internals.cidrPresences, ipOptions.cidr), 'cidr must be one of ' + internals.cidrPresences.join(', ')); // If we only received a `cidr` setting, create a regex for it. But we don't need to create one if `cidr` is \"optional\" since that is the default\n\n if (!ipOptions.version && ipOptions.cidr !== 'optional') {\n regex = Ip.createIpRegex(['ipv4', 'ipv6', 'ipvfuture'], ipOptions.cidr);\n }\n } else {\n // Set our default cidr strategy\n ipOptions.cidr = 'optional';\n }\n\n var versions = void 0;\n\n if (ipOptions.version) {\n if (!Array.isArray(ipOptions.version)) {\n ipOptions.version = [ipOptions.version];\n }\n\n Hoek.assert(ipOptions.version.length >= 1, 'version must have at least 1 version specified');\n versions = [];\n\n for (var i = 0; i < ipOptions.version.length; ++i) {\n var version = ipOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n Hoek.assert(Ip.versions[version], 'version at position ' + i + ' must be one of ' + Object.keys(Ip.versions).join(', '));\n versions.push(version);\n } // Make sure we have a set of versions\n\n\n versions = Hoek.unique(versions);\n regex = Ip.createIpRegex(versions, ipOptions.cidr);\n }\n\n return this._test('ip', ipOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (versions) {\n return this.createError('string.ipVersion', {\n value: value,\n cidr: ipOptions.cidr,\n version: versions\n }, state, options);\n }\n\n return this.createError('string.ip', {\n value: value,\n cidr: ipOptions.cidr\n }, state, options);\n });\n };\n\n _class.prototype.uri = function uri(uriOptions) {\n var customScheme = '';\n var allowRelative = false;\n var relativeOnly = false;\n var regex = internals.uriRegex;\n\n if (uriOptions) {\n Hoek.assert((typeof uriOptions === 'undefined' ? 'undefined' : _typeof(uriOptions)) === 'object', 'options must be an object');\n\n if (uriOptions.scheme) {\n Hoek.assert(uriOptions.scheme instanceof RegExp || typeof uriOptions.scheme === 'string' || Array.isArray(uriOptions.scheme), 'scheme must be a RegExp, String, or Array');\n\n if (!Array.isArray(uriOptions.scheme)) {\n uriOptions.scheme = [uriOptions.scheme];\n }\n\n Hoek.assert(uriOptions.scheme.length >= 1, 'scheme must have at least 1 scheme specified'); // Flatten the array into a string to be used to match the schemes.\n\n for (var i = 0; i < uriOptions.scheme.length; ++i) {\n var scheme = uriOptions.scheme[i];\n Hoek.assert(scheme instanceof RegExp || typeof scheme === 'string', 'scheme at position ' + i + ' must be a RegExp or String'); // Add OR separators if a value already exists\n\n customScheme = customScheme + (customScheme ? '|' : ''); // If someone wants to match HTTP or HTTPS for example then we need to support both RegExp and String so we don't escape their pattern unknowingly.\n\n if (scheme instanceof RegExp) {\n customScheme = customScheme + scheme.source;\n } else {\n Hoek.assert(/[a-zA-Z][a-zA-Z0-9+-\\.]*/.test(scheme), 'scheme at position ' + i + ' must be a valid scheme');\n customScheme = customScheme + Hoek.escapeRegex(scheme);\n }\n }\n }\n\n if (uriOptions.allowRelative) {\n allowRelative = true;\n }\n\n if (uriOptions.relativeOnly) {\n relativeOnly = true;\n }\n }\n\n if (customScheme || allowRelative || relativeOnly) {\n regex = Uri.createUriRegex(customScheme, allowRelative, relativeOnly);\n }\n\n return this._test('uri', uriOptions, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n if (relativeOnly) {\n return this.createError('string.uriRelativeOnly', {\n value: value\n }, state, options);\n }\n\n if (customScheme) {\n return this.createError('string.uriCustomScheme', {\n scheme: customScheme,\n value: value\n }, state, options);\n }\n\n return this.createError('string.uri', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.isoDate = function isoDate() {\n return this._test('isoDate', undefined, function (value, state, options) {\n if (JoiDate._isIsoDate(value)) {\n if (!options.convert) {\n return value;\n }\n\n var d = new Date(value);\n\n if (!isNaN(d.getTime())) {\n return d.toISOString();\n }\n }\n\n return this.createError('string.isoDate', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.guid = function guid(guidOptions) {\n var versionNumbers = '';\n\n if (guidOptions && guidOptions.version) {\n if (!Array.isArray(guidOptions.version)) {\n guidOptions.version = [guidOptions.version];\n }\n\n Hoek.assert(guidOptions.version.length >= 1, 'version must have at least 1 valid version specified');\n var versions = new Set();\n\n for (var i = 0; i < guidOptions.version.length; ++i) {\n var version = guidOptions.version[i];\n Hoek.assert(typeof version === 'string', 'version at position ' + i + ' must be a string');\n version = version.toLowerCase();\n var versionNumber = internals.guidVersions[version];\n Hoek.assert(versionNumber, 'version at position ' + i + ' must be one of ' + Object.keys(internals.guidVersions).join(', '));\n Hoek.assert(!versions.has(versionNumber), 'version at position ' + i + ' must not be a duplicate.');\n versionNumbers += versionNumber;\n versions.add(versionNumber);\n }\n }\n\n var guidRegex = new RegExp('^([\\\\[{\\\\(]?)[0-9A-F]{8}([:-]?)[0-9A-F]{4}\\\\2?[' + (versionNumbers || '0-9A-F') + '][0-9A-F]{3}\\\\2?[' + (versionNumbers ? '89AB' : '0-9A-F') + '][0-9A-F]{3}\\\\2?[0-9A-F]{12}([\\\\]}\\\\)]?)$', 'i');\n return this._test('guid', guidOptions, function (value, state, options) {\n var results = guidRegex.exec(value);\n\n if (!results) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n } // Matching braces\n\n\n if (internals.guidBrackets[results[1]] !== results[results.length - 1]) {\n return this.createError('string.guid', {\n value: value\n }, state, options);\n }\n\n return value;\n });\n };\n\n _class.prototype.hex = function hex() {\n var hexOptions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n Hoek.assert((typeof hexOptions === 'undefined' ? 'undefined' : _typeof(hexOptions)) === 'object', 'hex options must be an object');\n Hoek.assert(typeof hexOptions.byteAligned === 'undefined' || typeof hexOptions.byteAligned === 'boolean', 'byteAligned must be boolean');\n var byteAligned = hexOptions.byteAligned === true;\n var regex = /^[a-f0-9]+$/i;\n\n var obj = this._test('hex', regex, function (value, state, options) {\n if (regex.test(value)) {\n if (byteAligned && value.length % 2 !== 0) {\n return this.createError('string.hexAlign', {\n value: value\n }, state, options);\n }\n\n return value;\n }\n\n return this.createError('string.hex', {\n value: value\n }, state, options);\n });\n\n if (byteAligned) {\n obj._flags.byteAligned = true;\n }\n\n return obj;\n };\n\n _class.prototype.base64 = function base64() {\n var base64Options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; // Validation.\n\n Hoek.assert((typeof base64Options === 'undefined' ? 'undefined' : _typeof(base64Options)) === 'object', 'base64 options must be an object');\n Hoek.assert(typeof base64Options.paddingRequired === 'undefined' || typeof base64Options.paddingRequired === 'boolean', 'paddingRequired must be boolean'); // Determine if padding is required.\n\n var paddingRequired = base64Options.paddingRequired === false ? base64Options.paddingRequired : base64Options.paddingRequired || true; // Set validation based on preference.\n\n var regex = paddingRequired ? // Padding is required.\n /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}==|[A-Za-z0-9+\\/]{3}=)?$/ // Padding is optional.\n : /^(?:[A-Za-z0-9+\\/]{4})*(?:[A-Za-z0-9+\\/]{2}(==)?|[A-Za-z0-9+\\/]{3}=?)?$/;\n return this._test('base64', regex, function (value, state, options) {\n if (regex.test(value)) {\n return value;\n }\n\n return this.createError('string.base64', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.hostname = function hostname() {\n var regex = /^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])\\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\\-]*[A-Za-z0-9])$/;\n return this._test('hostname', undefined, function (value, state, options) {\n if (value.length <= 255 && regex.test(value) || Net.isIPv6(value)) {\n return value;\n }\n\n return this.createError('string.hostname', {\n value: value\n }, state, options);\n });\n };\n\n _class.prototype.normalize = function normalize() {\n var form = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'NFC';\n Hoek.assert(Hoek.contain(internals.normalizationForms, form), 'normalization form must be one of ' + internals.normalizationForms.join(', '));\n\n var obj = this._test('normalize', form, function (value, state, options) {\n if (options.convert || value === value.normalize(form)) {\n return value;\n }\n\n return this.createError('string.normalize', {\n value: value,\n form: form\n }, state, options);\n });\n\n obj._flags.normalize = form;\n return obj;\n };\n\n _class.prototype.lowercase = function lowercase() {\n var obj = this._test('lowercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleLowerCase()) {\n return value;\n }\n\n return this.createError('string.lowercase', {\n value: value\n }, state, options);\n });\n\n obj._flags.case = 'lower';\n return obj;\n };\n\n _class.prototype.uppercase = function uppercase() {\n var obj = this._test('uppercase', undefined, function (value, state, options) {\n if (options.convert || value === value.toLocaleUpperCase()) {\n return value;\n }\n\n return this.createError('string.uppercase', {\n value: value\n }, state, options);\n });\n\n obj._flags.case = 'upper';\n return obj;\n };\n\n _class.prototype.trim = function trim() {\n var obj = this._test('trim', undefined, function (value, state, options) {\n if (options.convert || value === value.trim()) {\n return value;\n }\n\n return this.createError('string.trim', {\n value: value\n }, state, options);\n });\n\n obj._flags.trim = true;\n return obj;\n };\n\n _class.prototype.replace = function replace(pattern, replacement) {\n if (typeof pattern === 'string') {\n pattern = new RegExp(Hoek.escapeRegex(pattern), 'g');\n }\n\n Hoek.assert(pattern instanceof RegExp, 'pattern must be a RegExp');\n Hoek.assert(typeof replacement === 'string', 'replacement must be a String'); // This can not be considere a test like trim, we can't \"reject\"\n // anything from this rule, so just clone the current object\n\n var obj = this.clone();\n\n if (!obj._inner.replacements) {\n obj._inner.replacements = [];\n }\n\n obj._inner.replacements.push({\n pattern: pattern,\n replacement: replacement\n });\n\n return obj;\n };\n\n _class.prototype.truncate = function truncate(enabled) {\n var value = enabled === undefined ? true : !!enabled;\n\n if (this._flags.truncate === value) {\n return this;\n }\n\n var obj = this.clone();\n obj._flags.truncate = value;\n return obj;\n };\n\n return _class;\n }(Any);\n\n internals.compare = function (type, compare) {\n return function (limit, encoding) {\n var isRef = Ref.isRef(limit);\n Hoek.assert(Number.isSafeInteger(limit) && limit >= 0 || isRef, 'limit must be a positive integer or reference');\n Hoek.assert(!encoding || Buffer.isEncoding(encoding), 'Invalid encoding:', encoding);\n return this._test(type, limit, function (value, state, options) {\n var compareTo = void 0;\n\n if (isRef) {\n compareTo = limit(state.reference || state.parent, options);\n\n if (!Number.isSafeInteger(compareTo)) {\n return this.createError('string.ref', {\n ref: limit.key\n }, state, options);\n }\n } else {\n compareTo = limit;\n }\n\n if (compare(value, compareTo, encoding)) {\n return value;\n }\n\n return this.createError('string.' + type, {\n limit: compareTo,\n value: value,\n encoding: encoding\n }, state, options);\n });\n };\n };\n\n internals.String.prototype.min = internals.compare('min', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length >= limit;\n });\n internals.String.prototype.max = internals.compare('max', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length <= limit;\n });\n internals.String.prototype.length = internals.compare('length', function (value, limit, encoding) {\n var length = encoding ? Buffer.byteLength(value, encoding) : value.length;\n return length === limit;\n }); // Aliases\n\n internals.String.prototype.uuid = internals.String.prototype.guid;\n module.exports = new internals.String();\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(3).Buffer);\n /***/\n },\n /* 29 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var RFC3986 = __webpack_require__(14); // Declare internals\n\n\n var internals = {\n Ip: {\n cidrs: {\n ipv4: {\n required: '\\\\/(?:' + RFC3986.ipv4Cidr + ')',\n optional: '(?:\\\\/(?:' + RFC3986.ipv4Cidr + '))?',\n forbidden: ''\n },\n ipv6: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n },\n ipvfuture: {\n required: '\\\\/' + RFC3986.ipv6Cidr,\n optional: '(?:\\\\/' + RFC3986.ipv6Cidr + ')?',\n forbidden: ''\n }\n },\n versions: {\n ipv4: RFC3986.IPv4address,\n ipv6: RFC3986.IPv6address,\n ipvfuture: RFC3986.IPvFuture\n }\n }\n };\n\n internals.Ip.createIpRegex = function (versions, cidr) {\n var regex = void 0;\n\n for (var i = 0; i < versions.length; ++i) {\n var version = versions[i];\n\n if (!regex) {\n regex = '^(?:' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n } else {\n regex += '|' + internals.Ip.versions[version] + internals.Ip.cidrs[version][cidr];\n }\n }\n\n return new RegExp(regex + ')$');\n };\n\n module.exports = internals.Ip;\n /***/\n },\n /* 30 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load Modules\n\n var RFC3986 = __webpack_require__(14); // Declare internals\n\n\n var internals = {\n Uri: {\n createUriRegex: function createUriRegex(optionalScheme, allowRelative, relativeOnly) {\n var scheme = RFC3986.scheme;\n var prefix = void 0;\n\n if (relativeOnly) {\n prefix = '(?:' + RFC3986.relativeRef + ')';\n } else {\n // If we were passed a scheme, use it instead of the generic one\n if (optionalScheme) {\n // Have to put this in a non-capturing group to handle the OR statements\n scheme = '(?:' + optionalScheme + ')';\n }\n\n var withScheme = '(?:' + scheme + ':' + RFC3986.hierPart + ')';\n prefix = allowRelative ? '(?:' + withScheme + '|' + RFC3986.relativeRef + ')' : withScheme;\n }\n /**\n * URI = scheme \":\" hier-part [ \"?\" query ] [ \"#\" fragment ]\n *\n * OR\n *\n * relative-ref = relative-part [ \"?\" query ] [ \"#\" fragment ]\n */\n\n\n return new RegExp('^' + prefix + '(?:\\\\?' + RFC3986.query + ')?' + '(?:#' + RFC3986.fragment + ')?$');\n }\n }\n };\n module.exports = internals.Uri;\n /***/\n },\n /* 31 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\"; // Load modules\n\n var Hoek = __webpack_require__(0); // Declare internals\n\n\n var internals = {};\n\n exports = module.exports = internals.Topo = function () {\n this._items = [];\n this.nodes = [];\n };\n\n internals.Topo.prototype.add = function (nodes, options) {\n var _this = this;\n\n options = options || {}; // Validate rules\n\n var before = [].concat(options.before || []);\n var after = [].concat(options.after || []);\n var group = options.group || '?';\n var sort = options.sort || 0; // Used for merging only\n\n Hoek.assert(before.indexOf(group) === -1, 'Item cannot come before itself:', group);\n Hoek.assert(before.indexOf('?') === -1, 'Item cannot come before unassociated items');\n Hoek.assert(after.indexOf(group) === -1, 'Item cannot come after itself:', group);\n Hoek.assert(after.indexOf('?') === -1, 'Item cannot come after unassociated items');\n [].concat(nodes).forEach(function (node, i) {\n var item = {\n seq: _this._items.length,\n sort: sort,\n before: before,\n after: after,\n group: group,\n node: node\n };\n\n _this._items.push(item);\n }); // Insert event\n\n var error = this._sort();\n\n Hoek.assert(!error, 'item', group !== '?' ? 'added into group ' + group : '', 'created a dependencies error');\n return this.nodes;\n };\n\n internals.Topo.prototype.merge = function (others) {\n others = [].concat(others);\n\n for (var i = 0; i < others.length; ++i) {\n var other = others[i];\n\n if (other) {\n for (var j = 0; j < other._items.length; ++j) {\n var item = Hoek.shallow(other._items[j]);\n\n this._items.push(item);\n }\n }\n } // Sort items\n\n\n this._items.sort(internals.mergeSort);\n\n for (var _i = 0; _i < this._items.length; ++_i) {\n this._items[_i].seq = _i;\n }\n\n var error = this._sort();\n\n Hoek.assert(!error, 'merge created a dependencies error');\n return this.nodes;\n };\n\n internals.mergeSort = function (a, b) {\n return a.sort === b.sort ? 0 : a.sort < b.sort ? -1 : 1;\n };\n\n internals.Topo.prototype._sort = function () {\n // Construct graph\n var graph = {};\n var graphAfters = Object.create(null); // A prototype can bungle lookups w/ false positives\n\n var groups = Object.create(null);\n\n for (var i = 0; i < this._items.length; ++i) {\n var item = this._items[i];\n var seq = item.seq; // Unique across all items\n\n var group = item.group; // Determine Groups\n\n groups[group] = groups[group] || [];\n groups[group].push(seq); // Build intermediary graph using 'before'\n\n graph[seq] = item.before; // Build second intermediary graph with 'after'\n\n var after = item.after;\n\n for (var j = 0; j < after.length; ++j) {\n graphAfters[after[j]] = (graphAfters[after[j]] || []).concat(seq);\n }\n } // Expand intermediary graph\n\n\n var graphNodes = Object.keys(graph);\n\n for (var _i2 = 0; _i2 < graphNodes.length; ++_i2) {\n var node = graphNodes[_i2];\n var expandedGroups = [];\n var graphNodeItems = Object.keys(graph[node]);\n\n for (var _j = 0; _j < graphNodeItems.length; ++_j) {\n var _group = graph[node][graphNodeItems[_j]];\n groups[_group] = groups[_group] || [];\n\n for (var k = 0; k < groups[_group].length; ++k) {\n expandedGroups.push(groups[_group][k]);\n }\n }\n\n graph[node] = expandedGroups;\n } // Merge intermediary graph using graphAfters into final graph\n\n\n var afterNodes = Object.keys(graphAfters);\n\n for (var _i3 = 0; _i3 < afterNodes.length; ++_i3) {\n var _group2 = afterNodes[_i3];\n\n if (groups[_group2]) {\n for (var _j2 = 0; _j2 < groups[_group2].length; ++_j2) {\n var _node = groups[_group2][_j2];\n graph[_node] = graph[_node].concat(graphAfters[_group2]);\n }\n }\n } // Compile ancestors\n\n\n var children = void 0;\n var ancestors = {};\n graphNodes = Object.keys(graph);\n\n for (var _i4 = 0; _i4 < graphNodes.length; ++_i4) {\n var _node2 = graphNodes[_i4];\n children = graph[_node2];\n\n for (var _j3 = 0; _j3 < children.length; ++_j3) {\n ancestors[children[_j3]] = (ancestors[children[_j3]] || []).concat(_node2);\n }\n } // Topo sort\n\n\n var visited = {};\n var sorted = [];\n\n for (var _i5 = 0; _i5 < this._items.length; ++_i5) {\n // Really looping thru item.seq values out of order\n var next = _i5;\n\n if (ancestors[_i5]) {\n next = null;\n\n for (var _j4 = 0; _j4 < this._items.length; ++_j4) {\n // As above, these are item.seq values\n if (visited[_j4] === true) {\n continue;\n }\n\n if (!ancestors[_j4]) {\n ancestors[_j4] = [];\n }\n\n var shouldSeeCount = ancestors[_j4].length;\n var seenCount = 0;\n\n for (var _k = 0; _k < shouldSeeCount; ++_k) {\n if (visited[ancestors[_j4][_k]]) {\n ++seenCount;\n }\n }\n\n if (seenCount === shouldSeeCount) {\n next = _j4;\n break;\n }\n }\n }\n\n if (next !== null) {\n visited[next] = true;\n sorted.push(next);\n }\n }\n\n if (sorted.length !== this._items.length) {\n return new Error('Invalid dependencies');\n }\n\n var seqIndex = {};\n\n for (var _i6 = 0; _i6 < this._items.length; ++_i6) {\n var _item = this._items[_i6];\n seqIndex[_item.seq] = _item;\n }\n\n var sortedNodes = [];\n this._items = sorted.map(function (value) {\n var sortedItem = seqIndex[value];\n sortedNodes.push(sortedItem.node);\n return sortedItem;\n });\n this.nodes = sortedNodes;\n };\n /***/\n\n },\n /* 32 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n var Joi = __webpack_require__(8);\n\n module.exports = Joi;\n /***/\n },\n /* 33 */\n\n /***/\n function (module, exports, __webpack_require__) {\n \"use strict\";\n\n exports.byteLength = byteLength;\n exports.toByteArray = toByteArray;\n exports.fromByteArray = fromByteArray;\n var lookup = [];\n var revLookup = [];\n var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n\n function placeHoldersCount(b64) {\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4');\n } // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n\n\n return b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n }\n\n function byteLength(b64) {\n // base64 is 4/3 + up to two characters of the original data\n return b64.length * 3 / 4 - placeHoldersCount(b64);\n }\n\n function toByteArray(b64) {\n var i, l, tmp, placeHolders, arr;\n var len = b64.length;\n placeHolders = placeHoldersCount(b64);\n arr = new Arr(len * 3 / 4 - placeHolders); // if there are placeholders, only get up to the last complete 4 chars\n\n l = placeHolders > 0 ? len - 4 : len;\n var L = 0;\n\n for (i = 0; i < l; i += 4) {\n tmp = revLookup[b64.charCodeAt(i)] << 18 | revLookup[b64.charCodeAt(i + 1)] << 12 | revLookup[b64.charCodeAt(i + 2)] << 6 | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = tmp >> 16 & 0xFF;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = revLookup[b64.charCodeAt(i)] << 2 | revLookup[b64.charCodeAt(i + 1)] >> 4;\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = revLookup[b64.charCodeAt(i)] << 10 | revLookup[b64.charCodeAt(i + 1)] << 4 | revLookup[b64.charCodeAt(i + 2)] >> 2;\n arr[L++] = tmp >> 8 & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr;\n }\n\n function tripletToBase64(num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];\n }\n\n function encodeChunk(uint8, start, end) {\n var tmp;\n var output = [];\n\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + uint8[i + 2];\n output.push(tripletToBase64(tmp));\n }\n\n return output.join('');\n }\n\n function fromByteArray(uint8) {\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n // go through the array every three bytes, we'll deal with trailing stuff later\n\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength));\n } // pad the end with zeros, but make sure to not forget the extra bytes\n\n\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[tmp << 4 & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1];\n output += lookup[tmp >> 10];\n output += lookup[tmp >> 4 & 0x3F];\n output += lookup[tmp << 2 & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n return parts.join('');\n }\n /***/\n\n },\n /* 34 */\n\n /***/\n function (module, exports) {\n exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? nBytes - 1 : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n i += d;\n e = s & (1 << -nBits) - 1;\n s >>= -nBits;\n nBits += eLen;\n\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & (1 << -nBits) - 1;\n e >>= -nBits;\n nBits += mLen;\n\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : (s ? -1 : 1) * Infinity;\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen);\n };\n\n exports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0;\n var i = isLE ? 0 : nBytes - 1;\n var d = isLE ? 1 : -1;\n var s = value < 0 || value === 0 && 1 / value < 0 ? 1 : 0;\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = e << mLen | m;\n eLen += mLen;\n\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n };\n /***/\n\n },\n /* 35 */\n\n /***/\n function (module, exports) {\n var toString = {}.toString;\n\n module.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n };\n /***/\n\n },\n /* 36 */\n\n /***/\n function (module, exports) {\n module.exports = {\n \"_args\": [[\"joi@13.4.0\", \"/Users/jeff/projects/joi-browser\"]],\n \"_development\": true,\n \"_from\": \"joi@13.4.0\",\n \"_id\": \"joi@13.4.0\",\n \"_inBundle\": false,\n \"_integrity\": \"sha512-JuK4GjEu6j7zr9FuVe2MAseZ6si/8/HaY0qMAejfDFHp7jcH4OKE937mIHM5VT4xDS0q7lpQbszbxKV9rm0yUg==\",\n \"_location\": \"/joi\",\n \"_phantomChildren\": {},\n \"_requested\": {\n \"type\": \"version\",\n \"registry\": true,\n \"raw\": \"joi@13.4.0\",\n \"name\": \"joi\",\n \"escapedName\": \"joi\",\n \"rawSpec\": \"13.4.0\",\n \"saveSpec\": null,\n \"fetchSpec\": \"13.4.0\"\n },\n \"_requiredBy\": [\"#DEV:/\"],\n \"_resolved\": \"https://registry.npmjs.org/joi/-/joi-13.4.0.tgz\",\n \"_spec\": \"13.4.0\",\n \"_where\": \"/Users/jeff/projects/joi-browser\",\n \"bugs\": {\n \"url\": \"https://github.com/hapijs/joi/issues\"\n },\n \"dependencies\": {\n \"hoek\": \"5.x.x\",\n \"isemail\": \"3.x.x\",\n \"topo\": \"3.x.x\"\n },\n \"description\": \"Object schema validation\",\n \"devDependencies\": {\n \"code\": \"5.x.x\",\n \"hapitoc\": \"1.x.x\",\n \"lab\": \"15.x.x\"\n },\n \"engines\": {\n \"node\": \">=8.9.0\"\n },\n \"homepage\": \"https://github.com/hapijs/joi\",\n \"keywords\": [\"hapi\", \"schema\", \"validation\"],\n \"license\": \"BSD-3-Clause\",\n \"main\": \"lib/index.js\",\n \"name\": \"joi\",\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git://github.com/hapijs/joi.git\"\n },\n \"scripts\": {\n \"test\": \"lab -t 100 -a code -L\",\n \"test-cov-html\": \"lab -r html -o coverage.html -a code\",\n \"test-debug\": \"lab -a code\",\n \"toc\": \"hapitoc\",\n \"version\": \"npm run toc && git add API.md README.md\"\n },\n \"version\": \"13.4.0\"\n };\n /***/\n },\n /* 37 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (process) {\n // Copyright Joyent, Inc. and other Node contributors.\n //\n // Permission is hereby granted, free of charge, to any person obtaining a\n // copy of this software and associated documentation files (the\n // \"Software\"), to deal in the Software without restriction, including\n // without limitation the rights to use, copy, modify, merge, publish,\n // distribute, sublicense, and/or sell copies of the Software, and to permit\n // persons to whom the Software is furnished to do so, subject to the\n // following conditions:\n //\n // The above copyright notice and this permission notice shall be included\n // in all copies or substantial portions of the Software.\n //\n // THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n // OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n // NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n // DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n // OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n // USE OR OTHER DEALINGS IN THE SOFTWARE.\n // resolves . and .. elements in a path array with directory names there\n // must be no slashes, empty elements, or device names (c:\\) in the array\n // (so also no leading and trailing slashes - it does not distinguish\n // relative and absolute paths)\n function normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n } // if the path is allowed to go above the root, restore leading ..s\n\n\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n } // Split a filename into [root, dir, basename, ext], unix version\n // 'root' is just a slash, or nothing.\n\n\n var splitPathRe = /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\n\n var splitPath = function splitPath(filename) {\n return splitPathRe.exec(filename).slice(1);\n }; // path.resolve([from ...], to)\n // posix version\n\n\n exports.resolve = function () {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = i >= 0 ? arguments[i] : process.cwd(); // Skip empty and invalid entries\n\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n } // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n // Normalize the path\n\n\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function (p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n return (resolvedAbsolute ? '/' : '') + resolvedPath || '.';\n }; // path.normalize(path)\n // posix version\n\n\n exports.normalize = function (path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/'; // Normalize the path\n\n path = normalizeArray(filter(path.split('/'), function (p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n }; // posix version\n\n\n exports.isAbsolute = function (path) {\n return path.charAt(0) === '/';\n }; // posix version\n\n\n exports.join = function () {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function (p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n\n return p;\n }).join('/'));\n }; // path.relative(from, to)\n // posix version\n\n\n exports.relative = function (from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n return outputParts.join('/');\n };\n\n exports.sep = '/';\n exports.delimiter = ':';\n\n exports.dirname = function (path) {\n var result = splitPath(path),\n root = result[0],\n dir = result[1];\n\n if (!root && !dir) {\n // No dirname whatsoever\n return '.';\n }\n\n if (dir) {\n // It has a dirname, strip trailing slash\n dir = dir.substr(0, dir.length - 1);\n }\n\n return root + dir;\n };\n\n exports.basename = function (path, ext) {\n var f = splitPath(path)[2]; // TODO: make this comparison case-insensitive on windows?\n\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n\n return f;\n };\n\n exports.extname = function (path) {\n return splitPath(path)[3];\n };\n\n function filter(xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n\n return res;\n } // String.prototype.substr - negative index don't work in IE8\n\n\n var substr = 'ab'.substr(-1) === 'b' ? function (str, start, len) {\n return str.substr(start, len);\n } : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n };\n /* WEBPACK VAR INJECTION */\n }).call(exports, __webpack_require__(7));\n /***/\n },\n /* 38 */\n\n /***/\n function (module, exports, __webpack_require__) {\n /* WEBPACK VAR INJECTION */\n (function (module, global) {\n var __WEBPACK_AMD_DEFINE_RESULT__;\n /*! https://mths.be/punycode v1.4.1 by @mathias */\n\n\n ;\n\n (function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (true) {\n !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {\n return punycode;\n }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n })(this);\n /* WEBPACK VAR INJECTION */\n\n }).call(exports, __webpack_require__(41)(module), __webpack_require__(5));\n /***/\n },\n /* 39 */\n\n /***/\n function (module, exports) {\n if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n };\n } else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n ctor.super_ = superCtor;\n\n var TempCtor = function TempCtor() {};\n\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n };\n }\n /***/\n\n },\n /* 40 */\n\n /***/\n function (module, exports) {\n module.exports = function isBuffer(arg) {\n return arg && typeof arg === 'object' && typeof arg.copy === 'function' && typeof arg.fill === 'function' && typeof arg.readUInt8 === 'function';\n };\n /***/\n\n },\n /* 41 */\n\n /***/\n function (module, exports) {\n module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n };\n /***/\n\n }\n /******/\n ])\n );\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.post = exports.configure = undefined;\n\nvar _promise = require('babel-runtime/core-js/promise');\n\nvar _promise2 = _interopRequireDefault(_promise);\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar configure = exports.configure = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(accessToken) {\n var config;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n config = {\n baseUrl: _config.ATHENA_URL_ROOT,\n jwt: false,\n parse: null\n };\n\n if (accessToken) {\n config.token = 'JWT ' + accessToken;\n }\n\n request.configure(config);\n\n case 3:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function configure(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar post = exports.post = function () {\n var _ref2 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee2(endpoint, data) {\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return ensureInit();\n\n case 2:\n return _context2.abrupt('return', new _promise2.default(function (resolve, reject) {\n request.post(endpoint, {\n body: data,\n json: true\n }, (0, _errorHandler2.default)(resolve, reject));\n }));\n\n case 3:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n return function post(_x2, _x3) {\n return _ref2.apply(this, arguments);\n };\n}();\n\nexports.postJsonRpcPayload = postJsonRpcPayload;\n\nvar _instance = require('config-request/instance');\n\nvar _instance2 = _interopRequireDefault(_instance);\n\nvar _errorHandler = require('./errorHandler');\n\nvar _errorHandler2 = _interopRequireDefault(_errorHandler);\n\nvar _config = require('./config');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar request = (0, _instance2.default)();\nvar initPromise;\n\nfunction ensureInit() {\n if (!initPromise) {\n initPromise = configure();\n }\n\n return initPromise;\n}\n\nfunction postJsonRpcPayload(dongleId, payload) {\n return post(dongleId, payload);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.refreshAccessToken = undefined;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar refreshAccessToken = exports.refreshAccessToken = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(code, redirect_uri) {\n var authResponseText, resp;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return request.postForm('v2/auth/', {\n code: code,\n redirect_uri: redirect_uri\n });\n\n case 2:\n authResponseText = _context.sent;\n resp = JSON.parse(authResponseText);\n\n if (!(resp.access_token != null)) {\n _context.next = 10;\n break;\n }\n\n _context.next = 7;\n return request.configure(resp.access_token);\n\n case 7:\n return _context.abrupt('return', resp.access_token);\n\n case 10:\n if (!(resp.response !== undefined)) {\n _context.next = 14;\n break;\n }\n\n throw new Error('Could not exchange oauth code for access token: response ' + resp.response.status);\n\n case 14:\n throw new Error('Could not exchange oauth code for access token: response ' + authResponseText);\n\n case 15:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function refreshAccessToken(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fetchLocation = undefined;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _stringify = require('babel-runtime/core-js/json/stringify');\n\nvar _stringify2 = _interopRequireDefault(_stringify);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar fetchLocation = exports.fetchLocation = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(dongleId) {\n var locationEndpoint, location;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n locationEndpoint = 'v1/devices/' + dongleId + '/location';\n _context.next = 3;\n return request.get(locationEndpoint);\n\n case 3:\n location = _context.sent;\n\n if (!(location !== undefined && location.error === undefined)) {\n _context.next = 8;\n break;\n }\n\n return _context.abrupt('return', location);\n\n case 8:\n throw Error(\"Could not fetch device location: \" + (0, _stringify2.default)(location));\n\n case 9:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function fetchLocation(_x) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.listDevices = listDevices;\nexports.setDeviceAlias = setDeviceAlias;\nexports.setDeviceVehicleId = setDeviceVehicleId;\nexports.grantDeviceReadPermission = grantDeviceReadPermission;\nexports.removeDeviceReadPermission = removeDeviceReadPermission;\nexports.fetchVehicles = fetchVehicles;\nexports.fetchDevice = fetchDevice;\nexports.pilotPair = pilotPair;\nexports.fetchDeviceStats = fetchDeviceStats;\nexports.unpair = unpair;\nexports.fetchDeviceOwner = fetchDeviceOwner;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction listDevices() {\n return request.get('v1/me/devices/');\n} // Devices API\n// ~~~~~~~~~~~\n\n\nfunction setDeviceAlias(dongle_id, alias) {\n return request.patch('v1/devices/' + dongle_id + '/', {\n alias: alias\n });\n}\n\nfunction setDeviceVehicleId(dongle_id, vehicle_id) {\n return request.patch('v1/devices/' + dongle_id + '/', {\n vehicle_id: vehicle_id\n });\n}\n\nfunction grantDeviceReadPermission(dongle_id, email) {\n return request.post('v1/devices/' + dongle_id + '/add_user', {\n email: email\n });\n}\n\nfunction removeDeviceReadPermission(dongle_id, email) {\n return request.post('v1/devices/' + dongle_id + '/del_user', {\n email: email\n });\n}\n\nfunction fetchVehicles(vehicleId) {\n var vehicleEndpoint = 'v1/vehicles/' + vehicleId;\n return request.get(vehicleEndpoint);\n}\n\nfunction fetchDevice(dongleId) {\n var deviceEndpoint = 'v1.1/devices/' + dongleId + '/';\n return request.get(deviceEndpoint);\n}\n\nfunction pilotPair(imei, serial, pairToken) {\n return request.postForm('v2/pilotpair/', {\n imei: imei,\n serial: serial,\n pair_token: pairToken\n });\n}\n\nfunction fetchDeviceStats(dongleId) {\n return request.get('v1.1/devices/' + dongleId + '/stats');\n}\n\nfunction unpair(dongleId) {\n return request.post('v1/devices/' + dongleId + '/unpair');\n}\n\nfunction fetchDeviceOwner(dongleId) {\n return request.get('v1/devices/' + dongleId + '/owner');\n}","module.exports = {\n \"default\": require(\"core-js/library/fn/json/stringify\"),\n __esModule: true\n};","var core = require('../../modules/_core');\n\nvar $JSON = core.JSON || (core.JSON = {\n stringify: JSON.stringify\n});\n\nmodule.exports = function stringify(it) {\n // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nexports.default = routeApi;\n\nvar _urlJoin = require('url-join');\n\nvar _urlJoin2 = _interopRequireDefault(_urlJoin);\n\nvar _configRequestPromise = require('./config-request-promise');\n\nvar _configRequestPromise2 = _interopRequireDefault(_configRequestPromise);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction routeApi(routeSigUrl) {\n var request = (0, _configRequestPromise2.default)();\n var baseUrl = routeSigUrl + '/';\n request.configure({\n baseUrl: baseUrl,\n parse: null\n });\n return {\n getCoords: function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee() {\n var coords;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return request.get('route.coords');\n\n case 2:\n coords = _context.sent;\n return _context.abrupt('return', JSON.parse(coords));\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function getCoords() {\n return _ref.apply(this, arguments);\n }\n\n return getCoords;\n }(),\n getJpegUrl: function getJpegUrl(routeOffsetSeconds) {\n return (0, _urlJoin2.default)(baseUrl, 'sec' + routeOffsetSeconds.toString() + '.jpg');\n }\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fetchRoutes = undefined;\n\nvar _toConsumableArray2 = require('babel-runtime/helpers/toConsumableArray');\n\nvar _toConsumableArray3 = _interopRequireDefault(_toConsumableArray2);\n\nvar _isFinite = require('babel-runtime/core-js/number/is-finite');\n\nvar _isFinite2 = _interopRequireDefault(_isFinite);\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar fetchRoutes = exports.fetchRoutes = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(dongleId, start, end) {\n var segments;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return getSegmentMetadata(start, end, dongleId);\n\n case 2:\n segments = _context.sent;\n segments = parseSegmentMetadata(start, end, segments);\n return _context.abrupt('return', segmentsFromMetadata(segments).reverse());\n\n case 5:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function fetchRoutes(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.getSegmentMetadata = getSegmentMetadata;\nexports.getRouteInfo = getRouteInfo;\nexports.getShareSignature = getShareSignature;\nexports.getRouteSegments = getRouteSegments;\nexports.listRoutes = listRoutes;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar SEGMENT_LENGTH = 1000 * 60; // Drives api\n// ~~~~~~~~~~\n\nfunction getSegmentMetadata(start, end, dongleId) {\n return request.get('v1/devices/' + dongleId + '/segments', {\n from: start,\n to: end\n });\n}\n\nfunction getRouteInfo(routeName) {\n return request.get('v1/route/' + routeName + '/');\n}\n\nfunction getShareSignature(routeName) {\n return request.get('v1/route/' + routeName + '/share_signature');\n}\n\nfunction getRouteSegments(routeName) {\n return request.get('v1/route/' + routeName + '/segments');\n}\n\nfunction listRoutes(dongleId, limit, createdAfter) {\n var params = {\n limit: limit\n };\n\n if (typeof createdAfter !== 'undefined') {\n params.createdAfter = createdAfter;\n }\n\n return request.get('v1/devices/' + dongleId + '/routes', params);\n}\n\nfunction parseSegmentMetadata(start, end, segments) {\n var lastSegmentTime = 0;\n var routeStartTimes = {};\n return segments.map(function (segment) {\n segment.offset = Math.round(segment.start_time_utc_millis) - start;\n\n if (!routeStartTimes[segment.canonical_route_name]) {\n var segmentNum = Number(segment.canonical_name.split('--')[2]);\n segment.segment = segmentNum;\n\n if (segmentNum > 0) {\n routeStartTimes[segment.canonical_route_name] = segment.offset - SEGMENT_LENGTH * segmentNum;\n } else {\n routeStartTimes[segment.canonical_route_name] = segment.offset;\n }\n\n segment.routeOffset = routeStartTimes[segment.canonical_route_name];\n } else {\n segment.routeOffset = routeStartTimes[segment.canonical_route_name];\n }\n\n lastSegmentTime = segment.offset;\n segment.duration = Math.round(segment.end_time_utc_millis - segment.start_time_utc_millis);\n return segment;\n });\n}\n\nfunction segmentsFromMetadata(segmentsData) {\n var curSegment = null;\n var curStopTime = null;\n var curVideoStartOffset = null;\n var segments = [];\n segmentsData.forEach(function (segment) {\n if (!segment.url) {\n return;\n }\n\n if (!(segment.proc_log === 40 || segment.proc_qlog === 40)) {\n return;\n }\n\n var segmentHasDriverCamera = segment.proc_dcamera >= 0;\n var segmentHasDriverCameraStream = segment.proc_dcamera === 40;\n var segmentHasVideo = segment.proc_camera === 40;\n\n if (segmentHasVideo && curVideoStartOffset === null) {\n curVideoStartOffset = segment.offset;\n }\n\n curStopTime = segment.start_time_utc_millis;\n\n if (!curSegment || curSegment.route !== segment.canonical_route_name) {\n if (curSegment) {\n finishSegment(curSegment);\n }\n\n var url = segment.url;\n var parts = url.split('/');\n\n if ((0, _isFinite2.default)(Number(parts.pop()))) {\n // url has a number at the end\n url = parts.join('/');\n }\n\n curSegment = {\n dongleId: segment.dongle_id,\n offset: segment.offset - segment.segment * SEGMENT_LENGTH,\n route: segment.canonical_route_name,\n startTime: segment.start_time_utc_millis,\n startCoord: [segment.start_lng, segment.start_lat],\n duration: 0,\n segments: 0,\n url: url.replace('chffrprivate.blob.core.windows.net', 'chffrprivate-vzn.azureedge.net'),\n events: [],\n videoAvailableBetweenOffsets: [],\n hasVideo: segmentHasVideo,\n deviceType: segment.devicetype,\n hpgps: segment.hpgps,\n hasDriverCamera: segmentHasDriverCamera,\n hasDriverCameraStream: segmentHasDriverCameraStream,\n locStart: '',\n locEnd: '',\n distanceMiles: 0.0,\n cameraStreamSegCount: 0,\n driverCameraStreamSegCount: 0\n };\n segments.push(curSegment);\n }\n\n if (!segmentHasVideo && curVideoStartOffset !== null) {\n curSegment.videoAvailableBetweenOffsets.push([curVideoStartOffset, segment.offset]);\n curVideoStartOffset = null;\n }\n\n curSegment.hasVideo = curSegment.hasVideo || segmentHasVideo;\n curSegment.hasDriverCamera = curSegment.hasDriverCamera || segmentHasDriverCamera;\n curSegment.hasDriverCameraStream = curSegment.hasDriverCameraStream || segmentHasDriverCameraStream;\n curSegment.hpgps = curSegment.hpgps || segment.hpgps;\n curSegment.duration = segment.offset - curSegment.offset + segment.duration;\n curSegment.segments = Math.max(curSegment.segments, Number(segment.canonical_name.split('--').pop()) + 1);\n curSegment.events = curSegment.events.concat(segment.events);\n curSegment.endCoord = [segment.end_lng, segment.end_lat];\n curSegment.distanceMiles += segment.length;\n curSegment.cameraStreamSegCount += Math.floor(segmentHasVideo);\n curSegment.driverCameraStreamSegCount += Math.floor(segmentHasDriverCameraStream);\n });\n\n if (curSegment) {\n finishSegment(curSegment);\n }\n\n return segments;\n\n function finishSegment(segment) {\n var lastEngage = null;\n\n if (segment.hasVideo) {\n var lastVideoRange = segment.videoAvailableBetweenOffsets[segment.videoAvailableBetweenOffsets.length - 1] || [segment.offset, segment.offset + segment.duration];\n segment.videoAvailableBetweenOffsets = [].concat((0, _toConsumableArray3.default)(segment.videoAvailableBetweenOffsets.slice(0, segment.videoAvailableBetweenOffsets.length - 1)), [[lastVideoRange[0], segment.offset + segment.duration]]);\n }\n }\n}\n\nfunction hasSegmentMetadata(state) {\n if (!state.segmentData) {\n console.log('No segment data at all');\n return false;\n }\n\n if (!state.segmentData.segments) {\n console.log('Still loading...');\n return false;\n }\n\n if (state.dongleId !== state.segmentData.dongleId) {\n console.log('Bad dongle id');\n ;\n return false;\n }\n\n if (state.start < state.segmentData.start) {\n console.log('Bad start offset');\n return false;\n }\n\n if (state.end > state.segmentData.end) {\n console.log('Bad end offset');\n return false;\n }\n\n if (state.end > state.segmentData.end) {\n console.log('Bad end offset');\n return false;\n }\n\n return state.start >= state.segmentData.start && state.end <= state.segmentData.end;\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/array/from\"),\n __esModule: true\n};","require('../../modules/es6.string.iterator');\n\nrequire('../../modules/es6.array.from');\n\nmodule.exports = require('../../modules/_core').Array.from;","'use strict';\n\nvar ctx = require('./_ctx');\n\nvar $export = require('./_export');\n\nvar toObject = require('./_to-object');\n\nvar call = require('./_iter-call');\n\nvar isArrayIter = require('./_is-array-iter');\n\nvar toLength = require('./_to-length');\n\nvar createProperty = require('./_create-property');\n\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) {\n Array.from(iter);\n}), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike\n /* , mapfn = undefined, thisArg = undefined */\n ) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); // if object isn't iterable or it's array with default iterator - use simple case\n\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n\n result.length = index;\n return result;\n }\n});","'use strict';\n\nvar $defineProperty = require('./_object-dp');\n\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getLeaderboard = getLeaderboard;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction getLeaderboard() {\n return request.get('v2/leaderboard/');\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar getCached = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee(endpoint, routeName, params) {\n var path, data;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!urlStore[routeName]) {\n _context.next = 2;\n break;\n }\n\n return _context.abrupt('return', urlStore[routeName]);\n\n case 2:\n path = 'v1/route/' + routeName + '/' + endpoint;\n\n if (params !== undefined) {\n path += '?' + _querystringify2.default.stringify(params);\n }\n\n _context.next = 6;\n return request.get(path);\n\n case 6:\n data = _context.sent;\n urlStore[routeName] = data;\n setTimeout(function () {\n delete urlStore[routeName];\n }, 1000 * 60 * 45); // expires in 1h, lets reset in 45m\n\n return _context.abrupt('return', urlStore[routeName]);\n\n case 10:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function getCached(_x, _x2, _x3) {\n return _ref.apply(this, arguments);\n };\n}();\n\nexports.getRouteFiles = getRouteFiles;\nexports.getLogUrls = getLogUrls;\n\nvar _querystringify = require('querystringify');\n\nvar _querystringify2 = _interopRequireDefault(_querystringify);\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar urlStore = {};\n\nfunction getRouteFiles(routeName) {\n return getCached('files', routeName);\n}\n\nfunction getLogUrls(routeName, params) {\n return getCached('log_urls', routeName, params);\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.fetchMakes = fetchMakes;\nexports.fetchModels = fetchModels;\nexports.fetchVehicle = fetchVehicle;\n\nvar _request = require('./request');\n\nvar request = _interopRequireWildcard(_request);\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n } else {\n var newObj = {};\n\n if (obj != null) {\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key];\n }\n }\n\n newObj.default = obj;\n return newObj;\n }\n}\n\nfunction fetchMakes() {\n return request.get('v1/vehicles/makes/');\n} // Vehicle API\n// ~~~~~~~~~~~\n\n\nfunction fetchModels(make) {\n return request.get('v1/vehicles/makes/' + make);\n}\n\nfunction fetchVehicle(vehicleId) {\n return request.get('v1/vehicles/' + vehicleId.toString());\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _slicedToArray2 = require('babel-runtime/helpers/slicedToArray');\n\nvar _slicedToArray3 = _interopRequireDefault(_slicedToArray2);\n\nexports.default = videoApi;\n\nvar _urlJoin = require('url-join');\n\nvar _urlJoin2 = _interopRequireDefault(_urlJoin);\n\nvar _configRequestPromise = require('./config-request-promise');\n\nvar _configRequestPromise2 = _interopRequireDefault(_configRequestPromise);\n\nvar _config = require('./config');\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction videoApi(routeSigUrl, videoServerHost) {\n if (!videoServerHost) {\n videoServerHost = _config.VIDEO_HOST;\n }\n\n var _routeSigUrl$split$sl = routeSigUrl.split('/').slice(5, 7),\n _routeSigUrl$split$sl2 = (0, _slicedToArray3.default)(_routeSigUrl$split$sl, 2),\n dongleId = _routeSigUrl$split$sl2[0],\n routeSignature = _routeSigUrl$split$sl2[1];\n\n var videoserverRequest = (0, _configRequestPromise2.default)();\n var videoserverBaseUrl = videoServerHost + '/hls/' + dongleId + '/' + routeSignature + '/';\n videoserverRequest.configure({\n baseUrl: videoserverBaseUrl,\n parse: null\n });\n var storageRequest = (0, _configRequestPromise2.default)();\n storageRequest.configure({\n baseUrl: routeSigUrl + '/',\n parse: null\n });\n return {\n getRearCameraStreamIndexUrl: function getRearCameraStreamIndexUrl() {\n return (0, _urlJoin2.default)(videoserverBaseUrl, 'index.m3u8');\n },\n getFrontCameraStreamIndexUrl: function getFrontCameraStreamIndexUrl() {\n return (0, _urlJoin2.default)(videoserverBaseUrl, 'dcamera/index.m3u8');\n },\n getQcameraStreamIndexUrl: function getQcameraStreamIndexUrl() {\n return (0, _urlJoin2.default)(routeSigUrl, 'qcamera.m3u8?t=' + Date.now());\n },\n getRearCameraStreamIndex: function getRearCameraStreamIndex() {\n return videoserverRequest.get('index.m3u8');\n },\n getFrontCameraStreamIndexPath: function getFrontCameraStreamIndexPath() {\n return videoserverRequest.get('dcamera/index.m3u8');\n },\n getQcameraStreamIndex: function getQcameraStreamIndex(max) {\n return storageRequest.get('qcamera.m3u8?t=' + Date.now());\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _isIterable2 = require(\"../core-js/is-iterable\");\n\nvar _isIterable3 = _interopRequireDefault(_isIterable2);\n\nvar _getIterator2 = require(\"../core-js/get-iterator\");\n\nvar _getIterator3 = _interopRequireDefault(_getIterator2);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nexports.default = function () {\n function sliceIterator(arr, i) {\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = (0, _getIterator3.default)(arr), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"]) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n }\n\n return function (arr, i) {\n if (Array.isArray(arr)) {\n return arr;\n } else if ((0, _isIterable3.default)(Object(arr))) {\n return sliceIterator(arr, i);\n } else {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance\");\n }\n };\n}();","module.exports = {\n \"default\": require(\"core-js/library/fn/is-iterable\"),\n __esModule: true\n};","require('../modules/web.dom.iterable');\n\nrequire('../modules/es6.string.iterator');\n\nmodule.exports = require('../modules/core.is-iterable');","var classof = require('./_classof');\n\nvar ITERATOR = require('./_wks')('iterator');\n\nvar Iterators = require('./_iterators');\n\nmodule.exports = require('./_core').isIterable = function (it) {\n var O = Object(it);\n return O[ITERATOR] !== undefined || '@@iterator' in O // eslint-disable-next-line no-prototype-builtins\n || Iterators.hasOwnProperty(classof(O));\n};","module.exports = {\n \"default\": require(\"core-js/library/fn/get-iterator\"),\n __esModule: true\n};","require('../modules/web.dom.iterable');\n\nrequire('../modules/es6.string.iterator');\n\nmodule.exports = require('../modules/core.get-iterator');","var anObject = require('./_an-object');\n\nvar get = require('./core.get-iterator-method');\n\nmodule.exports = require('./_core').getIterator = function (it) {\n var iterFn = get(it);\n if (typeof iterFn != 'function') throw TypeError(it + ' is not iterable!');\n return anObject(iterFn.call(it));\n};","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getCommaAccessToken = exports.logOut = exports.isAuthed = undefined;\n\nvar _regenerator = require('babel-runtime/regenerator');\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _asyncToGenerator2 = require('babel-runtime/helpers/asyncToGenerator');\n\nvar _asyncToGenerator3 = _interopRequireDefault(_asyncToGenerator2);\n\nvar logOut = exports.logOut = function () {\n var _ref = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee() {\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n localStorage.removeItem('authorization');\n\n if (!useForage) {\n _context.next = 4;\n break;\n }\n\n _context.next = 4;\n return _localforage2.default.removeItem('authorization');\n\n case 4:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n return function logOut() {\n return _ref.apply(this, arguments);\n };\n}();\n\nvar getCommaAccessToken = exports.getCommaAccessToken = function () {\n var _ref2 = (0, _asyncToGenerator3.default)(\n /*#__PURE__*/\n _regenerator2.default.mark(function _callee2() {\n var token;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n token = getTokenInternal();\n\n if (token) {\n _context2.next = 11;\n break;\n }\n\n _context2.prev = 2;\n _context2.next = 5;\n return _localforage2.default.getItem('authorization');\n\n case 5:\n token = _context2.sent;\n _context2.next = 11;\n break;\n\n case 8:\n _context2.prev = 8;\n _context2.t0 = _context2['catch'](2);\n useForage = false;\n\n case 11:\n if (!token) {\n _context2.next = 16;\n break;\n }\n\n exports.isAuthed = isAuthed = true;\n\n if (!useForage) {\n _context2.next = 16;\n break;\n }\n\n _context2.next = 16;\n return _localforage2.default.setItem('authorization', token);\n\n case 16:\n return _context2.abrupt('return', token);\n\n case 17:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this, [[2, 8]]);\n }));\n\n return function getCommaAccessToken() {\n return _ref2.apply(this, arguments);\n };\n}();\n\nexports.getTokenInternal = getTokenInternal;\nexports.setCommaAccessToken = setCommaAccessToken;\n\nvar _localforage = require('localforage');\n\nvar _localforage2 = _interopRequireDefault(_localforage);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar isAuthed = exports.isAuthed = false;\nvar useForage = true;\n\nfunction getTokenInternal() {\n if (typeof localStorage !== 'undefined') {\n if (localStorage.authorization) {\n return localStorage.authorization;\n }\n }\n\n return null;\n}\n\nfunction setCommaAccessToken(token) {\n localStorage.setItem('authorization', token);\n return getCommaAccessToken();\n}","/*!\n localForage -- Offline Storage, Improved\n Version 1.7.3\n https://localforage.github.io/localForage\n (c) 2013-2017 Mozilla, Apache License 2.0\n*/\n(function (f) {\n if (typeof exports === \"object\" && typeof module !== \"undefined\") {\n module.exports = f();\n } else if (typeof define === \"function\" && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== \"undefined\") {\n g = window;\n } else if (typeof global !== \"undefined\") {\n g = global;\n } else if (typeof self !== \"undefined\") {\n g = self;\n } else {\n g = this;\n }\n\n g.localforage = f();\n }\n})(function () {\n var define, module, exports;\n return function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require == \"function\" && require;\n if (!u && a) return a(o, !0);\n if (i) return i(o, !0);\n var f = new Error(\"Cannot find module '\" + o + \"'\");\n throw f.code = \"MODULE_NOT_FOUND\", f;\n }\n\n var l = n[o] = {\n exports: {}\n };\n t[o][0].call(l.exports, function (e) {\n var n = t[o][1][e];\n return s(n ? n : e);\n }, l, l.exports, e, t, n, r);\n }\n\n return n[o].exports;\n }\n\n var i = typeof require == \"function\" && require;\n\n for (var o = 0; o < r.length; o++) {\n s(r[o]);\n }\n\n return s;\n }({\n 1: [function (_dereq_, module, exports) {\n (function (global) {\n 'use strict';\n\n var Mutation = global.MutationObserver || global.WebKitMutationObserver;\n var scheduleDrain;\n {\n if (Mutation) {\n var called = 0;\n var observer = new Mutation(nextTick);\n var element = global.document.createTextNode('');\n observer.observe(element, {\n characterData: true\n });\n\n scheduleDrain = function scheduleDrain() {\n element.data = called = ++called % 2;\n };\n } else if (!global.setImmediate && typeof global.MessageChannel !== 'undefined') {\n var channel = new global.MessageChannel();\n channel.port1.onmessage = nextTick;\n\n scheduleDrain = function scheduleDrain() {\n channel.port2.postMessage(0);\n };\n } else if ('document' in global && 'onreadystatechange' in global.document.createElement('script')) {\n scheduleDrain = function scheduleDrain() {\n // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n var scriptEl = global.document.createElement('script');\n\n scriptEl.onreadystatechange = function () {\n nextTick();\n scriptEl.onreadystatechange = null;\n scriptEl.parentNode.removeChild(scriptEl);\n scriptEl = null;\n };\n\n global.document.documentElement.appendChild(scriptEl);\n };\n } else {\n scheduleDrain = function scheduleDrain() {\n setTimeout(nextTick, 0);\n };\n }\n }\n var draining;\n var queue = []; //named nextTick for less confusing stack traces\n\n function nextTick() {\n draining = true;\n var i, oldQueue;\n var len = queue.length;\n\n while (len) {\n oldQueue = queue;\n queue = [];\n i = -1;\n\n while (++i < len) {\n oldQueue[i]();\n }\n\n len = queue.length;\n }\n\n draining = false;\n }\n\n module.exports = immediate;\n\n function immediate(task) {\n if (queue.push(task) === 1 && !draining) {\n scheduleDrain();\n }\n }\n }).call(this, typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n }, {}],\n 2: [function (_dereq_, module, exports) {\n 'use strict';\n\n var immediate = _dereq_(1);\n /* istanbul ignore next */\n\n\n function INTERNAL() {}\n\n var handlers = {};\n var REJECTED = ['REJECTED'];\n var FULFILLED = ['FULFILLED'];\n var PENDING = ['PENDING'];\n module.exports = Promise;\n\n function Promise(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('resolver must be a function');\n }\n\n this.state = PENDING;\n this.queue = [];\n this.outcome = void 0;\n\n if (resolver !== INTERNAL) {\n safelyResolveThenable(this, resolver);\n }\n }\n\n Promise.prototype[\"catch\"] = function (onRejected) {\n return this.then(null, onRejected);\n };\n\n Promise.prototype.then = function (onFulfilled, onRejected) {\n if (typeof onFulfilled !== 'function' && this.state === FULFILLED || typeof onRejected !== 'function' && this.state === REJECTED) {\n return this;\n }\n\n var promise = new this.constructor(INTERNAL);\n\n if (this.state !== PENDING) {\n var resolver = this.state === FULFILLED ? onFulfilled : onRejected;\n unwrap(promise, resolver, this.outcome);\n } else {\n this.queue.push(new QueueItem(promise, onFulfilled, onRejected));\n }\n\n return promise;\n };\n\n function QueueItem(promise, onFulfilled, onRejected) {\n this.promise = promise;\n\n if (typeof onFulfilled === 'function') {\n this.onFulfilled = onFulfilled;\n this.callFulfilled = this.otherCallFulfilled;\n }\n\n if (typeof onRejected === 'function') {\n this.onRejected = onRejected;\n this.callRejected = this.otherCallRejected;\n }\n }\n\n QueueItem.prototype.callFulfilled = function (value) {\n handlers.resolve(this.promise, value);\n };\n\n QueueItem.prototype.otherCallFulfilled = function (value) {\n unwrap(this.promise, this.onFulfilled, value);\n };\n\n QueueItem.prototype.callRejected = function (value) {\n handlers.reject(this.promise, value);\n };\n\n QueueItem.prototype.otherCallRejected = function (value) {\n unwrap(this.promise, this.onRejected, value);\n };\n\n function unwrap(promise, func, value) {\n immediate(function () {\n var returnValue;\n\n try {\n returnValue = func(value);\n } catch (e) {\n return handlers.reject(promise, e);\n }\n\n if (returnValue === promise) {\n handlers.reject(promise, new TypeError('Cannot resolve promise with itself'));\n } else {\n handlers.resolve(promise, returnValue);\n }\n });\n }\n\n handlers.resolve = function (self, value) {\n var result = tryCatch(getThen, value);\n\n if (result.status === 'error') {\n return handlers.reject(self, result.value);\n }\n\n var thenable = result.value;\n\n if (thenable) {\n safelyResolveThenable(self, thenable);\n } else {\n self.state = FULFILLED;\n self.outcome = value;\n var i = -1;\n var len = self.queue.length;\n\n while (++i < len) {\n self.queue[i].callFulfilled(value);\n }\n }\n\n return self;\n };\n\n handlers.reject = function (self, error) {\n self.state = REJECTED;\n self.outcome = error;\n var i = -1;\n var len = self.queue.length;\n\n while (++i < len) {\n self.queue[i].callRejected(error);\n }\n\n return self;\n };\n\n function getThen(obj) {\n // Make sure we only access the accessor once as required by the spec\n var then = obj && obj.then;\n\n if (obj && (typeof obj === 'object' || typeof obj === 'function') && typeof then === 'function') {\n return function appyThen() {\n then.apply(obj, arguments);\n };\n }\n }\n\n function safelyResolveThenable(self, thenable) {\n // Either fulfill, reject or reject with error\n var called = false;\n\n function onError(value) {\n if (called) {\n return;\n }\n\n called = true;\n handlers.reject(self, value);\n }\n\n function onSuccess(value) {\n if (called) {\n return;\n }\n\n called = true;\n handlers.resolve(self, value);\n }\n\n function tryToUnwrap() {\n thenable(onSuccess, onError);\n }\n\n var result = tryCatch(tryToUnwrap);\n\n if (result.status === 'error') {\n onError(result.value);\n }\n }\n\n function tryCatch(func, value) {\n var out = {};\n\n try {\n out.value = func(value);\n out.status = 'success';\n } catch (e) {\n out.status = 'error';\n out.value = e;\n }\n\n return out;\n }\n\n Promise.resolve = resolve;\n\n function resolve(value) {\n if (value instanceof this) {\n return value;\n }\n\n return handlers.resolve(new this(INTERNAL), value);\n }\n\n Promise.reject = reject;\n\n function reject(reason) {\n var promise = new this(INTERNAL);\n return handlers.reject(promise, reason);\n }\n\n Promise.all = all;\n\n function all(iterable) {\n var self = this;\n\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n\n if (!len) {\n return this.resolve([]);\n }\n\n var values = new Array(len);\n var resolved = 0;\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n allResolver(iterable[i], i);\n }\n\n return promise;\n\n function allResolver(value, i) {\n self.resolve(value).then(resolveFromAll, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n\n function resolveFromAll(outValue) {\n values[i] = outValue;\n\n if (++resolved === len && !called) {\n called = true;\n handlers.resolve(promise, values);\n }\n }\n }\n }\n\n Promise.race = race;\n\n function race(iterable) {\n var self = this;\n\n if (Object.prototype.toString.call(iterable) !== '[object Array]') {\n return this.reject(new TypeError('must be an array'));\n }\n\n var len = iterable.length;\n var called = false;\n\n if (!len) {\n return this.resolve([]);\n }\n\n var i = -1;\n var promise = new this(INTERNAL);\n\n while (++i < len) {\n resolver(iterable[i]);\n }\n\n return promise;\n\n function resolver(value) {\n self.resolve(value).then(function (response) {\n if (!called) {\n called = true;\n handlers.resolve(promise, response);\n }\n }, function (error) {\n if (!called) {\n called = true;\n handlers.reject(promise, error);\n }\n });\n }\n }\n }, {\n \"1\": 1\n }],\n 3: [function (_dereq_, module, exports) {\n (function (global) {\n 'use strict';\n\n if (typeof global.Promise !== 'function') {\n global.Promise = _dereq_(2);\n }\n }).call(this, typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n }, {\n \"2\": 2\n }],\n 4: [function (_dereq_, module, exports) {\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n\n function getIDB() {\n /* global indexedDB,webkitIndexedDB,mozIndexedDB,OIndexedDB,msIndexedDB */\n try {\n if (typeof indexedDB !== 'undefined') {\n return indexedDB;\n }\n\n if (typeof webkitIndexedDB !== 'undefined') {\n return webkitIndexedDB;\n }\n\n if (typeof mozIndexedDB !== 'undefined') {\n return mozIndexedDB;\n }\n\n if (typeof OIndexedDB !== 'undefined') {\n return OIndexedDB;\n }\n\n if (typeof msIndexedDB !== 'undefined') {\n return msIndexedDB;\n }\n } catch (e) {\n return;\n }\n }\n\n var idb = getIDB();\n\n function isIndexedDBValid() {\n try {\n // Initialize IndexedDB; fall back to vendor-prefixed versions\n // if needed.\n if (!idb) {\n return false;\n } // We mimic PouchDB here;\n //\n // We test for openDatabase because IE Mobile identifies itself\n // as Safari. Oh the lulz...\n\n\n var isSafari = typeof openDatabase !== 'undefined' && /(Safari|iPhone|iPad|iPod)/.test(navigator.userAgent) && !/Chrome/.test(navigator.userAgent) && !/BlackBerry/.test(navigator.platform);\n var hasFetch = typeof fetch === 'function' && fetch.toString().indexOf('[native code') !== -1; // Safari <10.1 does not meet our requirements for IDB support (#5572)\n // since Safari 10.1 shipped with fetch, we can use that to detect it\n\n return (!isSafari || hasFetch) && typeof indexedDB !== 'undefined' && // some outdated implementations of IDB that appear on Samsung\n // and HTC Android devices <4.4 are missing IDBKeyRange\n // See: https://github.com/mozilla/localForage/issues/128\n // See: https://github.com/mozilla/localForage/issues/272\n typeof IDBKeyRange !== 'undefined';\n } catch (e) {\n return false;\n }\n } // Abstracts constructing a Blob object, so it also works in older\n // browsers that don't support the native Blob constructor. (i.e.\n // old QtWebKit versions, at least).\n // Abstracts constructing a Blob object, so it also works in older\n // browsers that don't support the native Blob constructor. (i.e.\n // old QtWebKit versions, at least).\n\n\n function createBlob(parts, properties) {\n /* global BlobBuilder,MSBlobBuilder,MozBlobBuilder,WebKitBlobBuilder */\n parts = parts || [];\n properties = properties || {};\n\n try {\n return new Blob(parts, properties);\n } catch (e) {\n if (e.name !== 'TypeError') {\n throw e;\n }\n\n var Builder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : WebKitBlobBuilder;\n var builder = new Builder();\n\n for (var i = 0; i < parts.length; i += 1) {\n builder.append(parts[i]);\n }\n\n return builder.getBlob(properties.type);\n }\n } // This is CommonJS because lie is an external dependency, so Rollup\n // can just ignore it.\n\n\n if (typeof Promise === 'undefined') {\n // In the \"nopromises\" build this will just throw if you don't have\n // a global promise object, but it would throw anyway later.\n _dereq_(3);\n }\n\n var Promise$1 = Promise;\n\n function executeCallback(promise, callback) {\n if (callback) {\n promise.then(function (result) {\n callback(null, result);\n }, function (error) {\n callback(error);\n });\n }\n }\n\n function executeTwoCallbacks(promise, callback, errorCallback) {\n if (typeof callback === 'function') {\n promise.then(callback);\n }\n\n if (typeof errorCallback === 'function') {\n promise[\"catch\"](errorCallback);\n }\n }\n\n function normalizeKey(key) {\n // Cast the key to a string, as that's all we can set as a key.\n if (typeof key !== 'string') {\n console.warn(key + ' used as a key, but it is not a string.');\n key = String(key);\n }\n\n return key;\n }\n\n function getCallback() {\n if (arguments.length && typeof arguments[arguments.length - 1] === 'function') {\n return arguments[arguments.length - 1];\n }\n } // Some code originally from async_storage.js in\n // [Gaia](https://github.com/mozilla-b2g/gaia).\n\n\n var DETECT_BLOB_SUPPORT_STORE = 'local-forage-detect-blob-support';\n var supportsBlobs = void 0;\n var dbContexts = {};\n var toString = Object.prototype.toString; // Transaction Modes\n\n var READ_ONLY = 'readonly';\n var READ_WRITE = 'readwrite'; // Transform a binary string to an array buffer, because otherwise\n // weird stuff happens when you try to work with the binary string directly.\n // It is known.\n // From http://stackoverflow.com/questions/14967647/ (continues on next line)\n // encode-decode-image-with-base64-breaks-image (2013-04-21)\n\n function _binStringToArrayBuffer(bin) {\n var length = bin.length;\n var buf = new ArrayBuffer(length);\n var arr = new Uint8Array(buf);\n\n for (var i = 0; i < length; i++) {\n arr[i] = bin.charCodeAt(i);\n }\n\n return buf;\n } //\n // Blobs are not supported in all versions of IndexedDB, notably\n // Chrome <37 and Android <5. In those versions, storing a blob will throw.\n //\n // Various other blob bugs exist in Chrome v37-42 (inclusive).\n // Detecting them is expensive and confusing to users, and Chrome 37-42\n // is at very low usage worldwide, so we do a hacky userAgent check instead.\n //\n // content-type bug: https://code.google.com/p/chromium/issues/detail?id=408120\n // 404 bug: https://code.google.com/p/chromium/issues/detail?id=447916\n // FileReader bug: https://code.google.com/p/chromium/issues/detail?id=447836\n //\n // Code borrowed from PouchDB. See:\n // https://github.com/pouchdb/pouchdb/blob/master/packages/node_modules/pouchdb-adapter-idb/src/blobSupport.js\n //\n\n\n function _checkBlobSupportWithoutCaching(idb) {\n return new Promise$1(function (resolve) {\n var txn = idb.transaction(DETECT_BLOB_SUPPORT_STORE, READ_WRITE);\n var blob = createBlob(['']);\n txn.objectStore(DETECT_BLOB_SUPPORT_STORE).put(blob, 'key');\n\n txn.onabort = function (e) {\n // If the transaction aborts now its due to not being able to\n // write to the database, likely due to the disk being full\n e.preventDefault();\n e.stopPropagation();\n resolve(false);\n };\n\n txn.oncomplete = function () {\n var matchedChrome = navigator.userAgent.match(/Chrome\\/(\\d+)/);\n var matchedEdge = navigator.userAgent.match(/Edge\\//); // MS Edge pretends to be Chrome 42:\n // https://msdn.microsoft.com/en-us/library/hh869301%28v=vs.85%29.aspx\n\n resolve(matchedEdge || !matchedChrome || parseInt(matchedChrome[1], 10) >= 43);\n };\n })[\"catch\"](function () {\n return false; // error, so assume unsupported\n });\n }\n\n function _checkBlobSupport(idb) {\n if (typeof supportsBlobs === 'boolean') {\n return Promise$1.resolve(supportsBlobs);\n }\n\n return _checkBlobSupportWithoutCaching(idb).then(function (value) {\n supportsBlobs = value;\n return supportsBlobs;\n });\n }\n\n function _deferReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name]; // Create a deferred object representing the current database operation.\n\n var deferredOperation = {};\n deferredOperation.promise = new Promise$1(function (resolve, reject) {\n deferredOperation.resolve = resolve;\n deferredOperation.reject = reject;\n }); // Enqueue the deferred operation.\n\n dbContext.deferredOperations.push(deferredOperation); // Chain its promise to the database readiness.\n\n if (!dbContext.dbReady) {\n dbContext.dbReady = deferredOperation.promise;\n } else {\n dbContext.dbReady = dbContext.dbReady.then(function () {\n return deferredOperation.promise;\n });\n }\n }\n\n function _advanceReadiness(dbInfo) {\n var dbContext = dbContexts[dbInfo.name]; // Dequeue a deferred operation.\n\n var deferredOperation = dbContext.deferredOperations.pop(); // Resolve its promise (which is part of the database readiness\n // chain of promises).\n\n if (deferredOperation) {\n deferredOperation.resolve();\n return deferredOperation.promise;\n }\n }\n\n function _rejectReadiness(dbInfo, err) {\n var dbContext = dbContexts[dbInfo.name]; // Dequeue a deferred operation.\n\n var deferredOperation = dbContext.deferredOperations.pop(); // Reject its promise (which is part of the database readiness\n // chain of promises).\n\n if (deferredOperation) {\n deferredOperation.reject(err);\n return deferredOperation.promise;\n }\n }\n\n function _getConnection(dbInfo, upgradeNeeded) {\n return new Promise$1(function (resolve, reject) {\n dbContexts[dbInfo.name] = dbContexts[dbInfo.name] || createDbContext();\n\n if (dbInfo.db) {\n if (upgradeNeeded) {\n _deferReadiness(dbInfo);\n\n dbInfo.db.close();\n } else {\n return resolve(dbInfo.db);\n }\n }\n\n var dbArgs = [dbInfo.name];\n\n if (upgradeNeeded) {\n dbArgs.push(dbInfo.version);\n }\n\n var openreq = idb.open.apply(idb, dbArgs);\n\n if (upgradeNeeded) {\n openreq.onupgradeneeded = function (e) {\n var db = openreq.result;\n\n try {\n db.createObjectStore(dbInfo.storeName);\n\n if (e.oldVersion <= 1) {\n // Added when support for blob shims was added\n db.createObjectStore(DETECT_BLOB_SUPPORT_STORE);\n }\n } catch (ex) {\n if (ex.name === 'ConstraintError') {\n console.warn('The database \"' + dbInfo.name + '\"' + ' has been upgraded from version ' + e.oldVersion + ' to version ' + e.newVersion + ', but the storage \"' + dbInfo.storeName + '\" already exists.');\n } else {\n throw ex;\n }\n }\n };\n }\n\n openreq.onerror = function (e) {\n e.preventDefault();\n reject(openreq.error);\n };\n\n openreq.onsuccess = function () {\n resolve(openreq.result);\n\n _advanceReadiness(dbInfo);\n };\n });\n }\n\n function _getOriginalConnection(dbInfo) {\n return _getConnection(dbInfo, false);\n }\n\n function _getUpgradedConnection(dbInfo) {\n return _getConnection(dbInfo, true);\n }\n\n function _isUpgradeNeeded(dbInfo, defaultVersion) {\n if (!dbInfo.db) {\n return true;\n }\n\n var isNewStore = !dbInfo.db.objectStoreNames.contains(dbInfo.storeName);\n var isDowngrade = dbInfo.version < dbInfo.db.version;\n var isUpgrade = dbInfo.version > dbInfo.db.version;\n\n if (isDowngrade) {\n // If the version is not the default one\n // then warn for impossible downgrade.\n if (dbInfo.version !== defaultVersion) {\n console.warn('The database \"' + dbInfo.name + '\"' + \" can't be downgraded from version \" + dbInfo.db.version + ' to version ' + dbInfo.version + '.');\n } // Align the versions to prevent errors.\n\n\n dbInfo.version = dbInfo.db.version;\n }\n\n if (isUpgrade || isNewStore) {\n // If the store is new then increment the version (if needed).\n // This will trigger an \"upgradeneeded\" event which is required\n // for creating a store.\n if (isNewStore) {\n var incVersion = dbInfo.db.version + 1;\n\n if (incVersion > dbInfo.version) {\n dbInfo.version = incVersion;\n }\n }\n\n return true;\n }\n\n return false;\n } // encode a blob for indexeddb engines that don't support blobs\n\n\n function _encodeBlob(blob) {\n return new Promise$1(function (resolve, reject) {\n var reader = new FileReader();\n reader.onerror = reject;\n\n reader.onloadend = function (e) {\n var base64 = btoa(e.target.result || '');\n resolve({\n __local_forage_encoded_blob: true,\n data: base64,\n type: blob.type\n });\n };\n\n reader.readAsBinaryString(blob);\n });\n } // decode an encoded blob\n\n\n function _decodeBlob(encodedBlob) {\n var arrayBuff = _binStringToArrayBuffer(atob(encodedBlob.data));\n\n return createBlob([arrayBuff], {\n type: encodedBlob.type\n });\n } // is this one of our fancy encoded blobs?\n\n\n function _isEncodedBlob(value) {\n return value && value.__local_forage_encoded_blob;\n } // Specialize the default `ready()` function by making it dependent\n // on the current database operations. Thus, the driver will be actually\n // ready when it's been initialized (default) *and* there are no pending\n // operations on the database (initiated by some other instances).\n\n\n function _fullyReady(callback) {\n var self = this;\n\n var promise = self._initReady().then(function () {\n var dbContext = dbContexts[self._dbInfo.name];\n\n if (dbContext && dbContext.dbReady) {\n return dbContext.dbReady;\n }\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n } // Try to establish a new db connection to replace the\n // current one which is broken (i.e. experiencing\n // InvalidStateError while creating a transaction).\n\n\n function _tryReconnect(dbInfo) {\n _deferReadiness(dbInfo);\n\n var dbContext = dbContexts[dbInfo.name];\n var forages = dbContext.forages;\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n\n if (forage._dbInfo.db) {\n forage._dbInfo.db.close();\n\n forage._dbInfo.db = null;\n }\n }\n\n dbInfo.db = null;\n return _getOriginalConnection(dbInfo).then(function (db) {\n dbInfo.db = db;\n\n if (_isUpgradeNeeded(dbInfo)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n\n return db;\n }).then(function (db) {\n // store the latest db reference\n // in case the db was upgraded\n dbInfo.db = dbContext.db = db;\n\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n })[\"catch\"](function (err) {\n _rejectReadiness(dbInfo, err);\n\n throw err;\n });\n } // FF doesn't like Promises (micro-tasks) and IDDB store operations,\n // so we have to do it with callbacks\n\n\n function createTransaction(dbInfo, mode, callback, retries) {\n if (retries === undefined) {\n retries = 1;\n }\n\n try {\n var tx = dbInfo.db.transaction(dbInfo.storeName, mode);\n callback(null, tx);\n } catch (err) {\n if (retries > 0 && (!dbInfo.db || err.name === 'InvalidStateError' || err.name === 'NotFoundError')) {\n return Promise$1.resolve().then(function () {\n if (!dbInfo.db || err.name === 'NotFoundError' && !dbInfo.db.objectStoreNames.contains(dbInfo.storeName) && dbInfo.version <= dbInfo.db.version) {\n // increase the db version, to create the new ObjectStore\n if (dbInfo.db) {\n dbInfo.version = dbInfo.db.version + 1;\n } // Reopen the database for upgrading.\n\n\n return _getUpgradedConnection(dbInfo);\n }\n }).then(function () {\n return _tryReconnect(dbInfo).then(function () {\n createTransaction(dbInfo, mode, callback, retries - 1);\n });\n })[\"catch\"](callback);\n }\n\n callback(err);\n }\n }\n\n function createDbContext() {\n return {\n // Running localForages sharing a database.\n forages: [],\n // Shared database.\n db: null,\n // Database readiness (promise).\n dbReady: null,\n // Deferred operations on the database.\n deferredOperations: []\n };\n } // Open the IndexedDB database (automatically creates one if one didn't\n // previously exist), using any options set in the config.\n\n\n function _initStorage(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n } // Get the current context of the database;\n\n\n var dbContext = dbContexts[dbInfo.name]; // ...or create a new context.\n\n if (!dbContext) {\n dbContext = createDbContext(); // Register the new context in the global container.\n\n dbContexts[dbInfo.name] = dbContext;\n } // Register itself as a running localForage in the current context.\n\n\n dbContext.forages.push(self); // Replace the default `ready()` function with the specialized one.\n\n if (!self._initReady) {\n self._initReady = self.ready;\n self.ready = _fullyReady;\n } // Create an array of initialization states of the related localForages.\n\n\n var initPromises = [];\n\n function ignoreErrors() {\n // Don't handle errors here,\n // just makes sure related localForages aren't pending.\n return Promise$1.resolve();\n }\n\n for (var j = 0; j < dbContext.forages.length; j++) {\n var forage = dbContext.forages[j];\n\n if (forage !== self) {\n // Don't wait for itself...\n initPromises.push(forage._initReady()[\"catch\"](ignoreErrors));\n }\n } // Take a snapshot of the related localForages.\n\n\n var forages = dbContext.forages.slice(0); // Initialize the connection process only when\n // all the related localForages aren't pending.\n\n return Promise$1.all(initPromises).then(function () {\n dbInfo.db = dbContext.db; // Get the connection or open a new one without upgrade.\n\n return _getOriginalConnection(dbInfo);\n }).then(function (db) {\n dbInfo.db = db;\n\n if (_isUpgradeNeeded(dbInfo, self._defaultConfig.version)) {\n // Reopen the database for upgrading.\n return _getUpgradedConnection(dbInfo);\n }\n\n return db;\n }).then(function (db) {\n dbInfo.db = dbContext.db = db;\n self._dbInfo = dbInfo; // Share the final connection amongst related localForages.\n\n for (var k = 0; k < forages.length; k++) {\n var forage = forages[k];\n\n if (forage !== self) {\n // Self is already up-to-date.\n forage._dbInfo.db = dbInfo.db;\n forage._dbInfo.version = dbInfo.version;\n }\n }\n });\n }\n\n function getItem(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.get(key);\n\n req.onsuccess = function () {\n var value = req.result;\n\n if (value === undefined) {\n value = null;\n }\n\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n\n resolve(value);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n } // Iterate over all items stored in database.\n\n\n function iterate(iterator, callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var iterationNumber = 1;\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (cursor) {\n var value = cursor.value;\n\n if (_isEncodedBlob(value)) {\n value = _decodeBlob(value);\n }\n\n var result = iterator(value, cursor.key, iterationNumber++); // when the iterator callback retuns any\n // (non-`undefined`) value, then we stop\n // the iteration immediately\n\n if (result !== void 0) {\n resolve(result);\n } else {\n cursor[\"continue\"]();\n }\n } else {\n resolve();\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function setItem(key, value, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n var dbInfo;\n self.ready().then(function () {\n dbInfo = self._dbInfo;\n\n if (toString.call(value) === '[object Blob]') {\n return _checkBlobSupport(dbInfo.db).then(function (blobSupport) {\n if (blobSupport) {\n return value;\n }\n\n return _encodeBlob(value);\n });\n }\n\n return value;\n }).then(function (value) {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName); // The reason we don't _save_ null is because IE 10 does\n // not support saving the `null` type in IndexedDB. How\n // ironic, given the bug below!\n // See: https://github.com/mozilla/localForage/issues/161\n\n if (value === null) {\n value = undefined;\n }\n\n var req = store.put(value, key);\n\n transaction.oncomplete = function () {\n // Cast to undefined so the value passed to\n // callback/promise is the same as what one would get out\n // of `getItem()` later. This leads to some weirdness\n // (setItem('foo', undefined) will return `null`), but\n // it's not my fault localStorage is our baseline and that\n // it's weird.\n if (value === undefined) {\n value = null;\n }\n\n resolve(value);\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function removeItem(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName); // We use a Grunt task to make this safe for IE and some\n // versions of Android (including those used by Cordova).\n // Normally IE won't like `.delete()` and will insist on\n // using `['delete']()`, but we have a build step that\n // fixes this for us now.\n\n var req = store[\"delete\"](key);\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onerror = function () {\n reject(req.error);\n }; // The request will be also be aborted if we've exceeded our storage\n // space.\n\n\n transaction.onabort = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function clear(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_WRITE, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.clear();\n\n transaction.oncomplete = function () {\n resolve();\n };\n\n transaction.onabort = transaction.onerror = function () {\n var err = req.error ? req.error : req.transaction.error;\n reject(err);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function length(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.count();\n\n req.onsuccess = function () {\n resolve(req.result);\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function key(n, callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n if (n < 0) {\n resolve(null);\n return;\n }\n\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var advanced = false;\n var req = store.openCursor();\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n // this means there weren't enough keys\n resolve(null);\n return;\n }\n\n if (n === 0) {\n // We have the first key, return it if that's what they\n // wanted.\n resolve(cursor.key);\n } else {\n if (!advanced) {\n // Otherwise, ask the cursor to skip ahead n\n // records.\n advanced = true;\n cursor.advance(n);\n } else {\n // When we get here, we've got the nth key.\n resolve(cursor.key);\n }\n }\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function keys(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n createTransaction(self._dbInfo, READ_ONLY, function (err, transaction) {\n if (err) {\n return reject(err);\n }\n\n try {\n var store = transaction.objectStore(self._dbInfo.storeName);\n var req = store.openCursor();\n var keys = [];\n\n req.onsuccess = function () {\n var cursor = req.result;\n\n if (!cursor) {\n resolve(keys);\n return;\n }\n\n keys.push(cursor.key);\n cursor[\"continue\"]();\n };\n\n req.onerror = function () {\n reject(req.error);\n };\n } catch (e) {\n reject(e);\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function dropInstance(options, callback) {\n callback = getCallback.apply(this, arguments);\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n var isCurrentDb = options.name === currentConfig.name && self._dbInfo.db;\n var dbPromise = isCurrentDb ? Promise$1.resolve(self._dbInfo.db) : _getOriginalConnection(options).then(function (db) {\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n dbContext.db = db;\n\n for (var i = 0; i < forages.length; i++) {\n forages[i]._dbInfo.db = db;\n }\n\n return db;\n });\n\n if (!options.storeName) {\n promise = dbPromise.then(function (db) {\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n db.close();\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n }\n\n var dropDBPromise = new Promise$1(function (resolve, reject) {\n var req = idb.deleteDatabase(options.name);\n\n req.onerror = req.onblocked = function (err) {\n var db = req.result;\n\n if (db) {\n db.close();\n }\n\n reject(err);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n\n if (db) {\n db.close();\n }\n\n resolve(db);\n };\n });\n return dropDBPromise.then(function (db) {\n dbContext.db = db;\n\n for (var i = 0; i < forages.length; i++) {\n var _forage = forages[i];\n\n _advanceReadiness(_forage._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n } else {\n promise = dbPromise.then(function (db) {\n if (!db.objectStoreNames.contains(options.storeName)) {\n return;\n }\n\n var newVersion = db.version + 1;\n\n _deferReadiness(options);\n\n var dbContext = dbContexts[options.name];\n var forages = dbContext.forages;\n db.close();\n\n for (var i = 0; i < forages.length; i++) {\n var forage = forages[i];\n forage._dbInfo.db = null;\n forage._dbInfo.version = newVersion;\n }\n\n var dropObjectPromise = new Promise$1(function (resolve, reject) {\n var req = idb.open(options.name, newVersion);\n\n req.onerror = function (err) {\n var db = req.result;\n db.close();\n reject(err);\n };\n\n req.onupgradeneeded = function () {\n var db = req.result;\n db.deleteObjectStore(options.storeName);\n };\n\n req.onsuccess = function () {\n var db = req.result;\n db.close();\n resolve(db);\n };\n });\n return dropObjectPromise.then(function (db) {\n dbContext.db = db;\n\n for (var j = 0; j < forages.length; j++) {\n var _forage2 = forages[j];\n _forage2._dbInfo.db = db;\n\n _advanceReadiness(_forage2._dbInfo);\n }\n })[\"catch\"](function (err) {\n (_rejectReadiness(options, err) || Promise$1.resolve())[\"catch\"](function () {});\n throw err;\n });\n });\n }\n }\n\n executeCallback(promise, callback);\n return promise;\n }\n\n var asyncStorage = {\n _driver: 'asyncStorage',\n _initStorage: _initStorage,\n _support: isIndexedDBValid(),\n iterate: iterate,\n getItem: getItem,\n setItem: setItem,\n removeItem: removeItem,\n clear: clear,\n length: length,\n key: key,\n keys: keys,\n dropInstance: dropInstance\n };\n\n function isWebSQLValid() {\n return typeof openDatabase === 'function';\n } // Sadly, the best way to save binary data in WebSQL/localStorage is serializing\n // it to Base64, so this is how we store it to prevent very strange errors with less\n // verbose ways of binary <-> string data storage.\n\n\n var BASE_CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n var BLOB_TYPE_PREFIX = '~~local_forage_type~';\n var BLOB_TYPE_PREFIX_REGEX = /^~~local_forage_type~([^~]+)~/;\n var SERIALIZED_MARKER = '__lfsc__:';\n var SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER.length; // OMG the serializations!\n\n var TYPE_ARRAYBUFFER = 'arbf';\n var TYPE_BLOB = 'blob';\n var TYPE_INT8ARRAY = 'si08';\n var TYPE_UINT8ARRAY = 'ui08';\n var TYPE_UINT8CLAMPEDARRAY = 'uic8';\n var TYPE_INT16ARRAY = 'si16';\n var TYPE_INT32ARRAY = 'si32';\n var TYPE_UINT16ARRAY = 'ur16';\n var TYPE_UINT32ARRAY = 'ui32';\n var TYPE_FLOAT32ARRAY = 'fl32';\n var TYPE_FLOAT64ARRAY = 'fl64';\n var TYPE_SERIALIZED_MARKER_LENGTH = SERIALIZED_MARKER_LENGTH + TYPE_ARRAYBUFFER.length;\n var toString$1 = Object.prototype.toString;\n\n function stringToBuffer(serializedString) {\n // Fill the string into a ArrayBuffer.\n var bufferLength = serializedString.length * 0.75;\n var len = serializedString.length;\n var i;\n var p = 0;\n var encoded1, encoded2, encoded3, encoded4;\n\n if (serializedString[serializedString.length - 1] === '=') {\n bufferLength--;\n\n if (serializedString[serializedString.length - 2] === '=') {\n bufferLength--;\n }\n }\n\n var buffer = new ArrayBuffer(bufferLength);\n var bytes = new Uint8Array(buffer);\n\n for (i = 0; i < len; i += 4) {\n encoded1 = BASE_CHARS.indexOf(serializedString[i]);\n encoded2 = BASE_CHARS.indexOf(serializedString[i + 1]);\n encoded3 = BASE_CHARS.indexOf(serializedString[i + 2]);\n encoded4 = BASE_CHARS.indexOf(serializedString[i + 3]);\n /*jslint bitwise: true */\n\n bytes[p++] = encoded1 << 2 | encoded2 >> 4;\n bytes[p++] = (encoded2 & 15) << 4 | encoded3 >> 2;\n bytes[p++] = (encoded3 & 3) << 6 | encoded4 & 63;\n }\n\n return buffer;\n } // Converts a buffer to a string to store, serialized, in the backend\n // storage library.\n\n\n function bufferToString(buffer) {\n // base64-arraybuffer\n var bytes = new Uint8Array(buffer);\n var base64String = '';\n var i;\n\n for (i = 0; i < bytes.length; i += 3) {\n /*jslint bitwise: true */\n base64String += BASE_CHARS[bytes[i] >> 2];\n base64String += BASE_CHARS[(bytes[i] & 3) << 4 | bytes[i + 1] >> 4];\n base64String += BASE_CHARS[(bytes[i + 1] & 15) << 2 | bytes[i + 2] >> 6];\n base64String += BASE_CHARS[bytes[i + 2] & 63];\n }\n\n if (bytes.length % 3 === 2) {\n base64String = base64String.substring(0, base64String.length - 1) + '=';\n } else if (bytes.length % 3 === 1) {\n base64String = base64String.substring(0, base64String.length - 2) + '==';\n }\n\n return base64String;\n } // Serialize a value, afterwards executing a callback (which usually\n // instructs the `setItem()` callback/promise to be executed). This is how\n // we store binary data with localStorage.\n\n\n function serialize(value, callback) {\n var valueType = '';\n\n if (value) {\n valueType = toString$1.call(value);\n } // Cannot use `value instanceof ArrayBuffer` or such here, as these\n // checks fail when running the tests using casper.js...\n //\n // TODO: See why those tests fail and use a better solution.\n\n\n if (value && (valueType === '[object ArrayBuffer]' || value.buffer && toString$1.call(value.buffer) === '[object ArrayBuffer]')) {\n // Convert binary arrays to a string and prefix the string with\n // a special marker.\n var buffer;\n var marker = SERIALIZED_MARKER;\n\n if (value instanceof ArrayBuffer) {\n buffer = value;\n marker += TYPE_ARRAYBUFFER;\n } else {\n buffer = value.buffer;\n\n if (valueType === '[object Int8Array]') {\n marker += TYPE_INT8ARRAY;\n } else if (valueType === '[object Uint8Array]') {\n marker += TYPE_UINT8ARRAY;\n } else if (valueType === '[object Uint8ClampedArray]') {\n marker += TYPE_UINT8CLAMPEDARRAY;\n } else if (valueType === '[object Int16Array]') {\n marker += TYPE_INT16ARRAY;\n } else if (valueType === '[object Uint16Array]') {\n marker += TYPE_UINT16ARRAY;\n } else if (valueType === '[object Int32Array]') {\n marker += TYPE_INT32ARRAY;\n } else if (valueType === '[object Uint32Array]') {\n marker += TYPE_UINT32ARRAY;\n } else if (valueType === '[object Float32Array]') {\n marker += TYPE_FLOAT32ARRAY;\n } else if (valueType === '[object Float64Array]') {\n marker += TYPE_FLOAT64ARRAY;\n } else {\n callback(new Error('Failed to get type for BinaryArray'));\n }\n }\n\n callback(marker + bufferToString(buffer));\n } else if (valueType === '[object Blob]') {\n // Conver the blob to a binaryArray and then to a string.\n var fileReader = new FileReader();\n\n fileReader.onload = function () {\n // Backwards-compatible prefix for the blob type.\n var str = BLOB_TYPE_PREFIX + value.type + '~' + bufferToString(this.result);\n callback(SERIALIZED_MARKER + TYPE_BLOB + str);\n };\n\n fileReader.readAsArrayBuffer(value);\n } else {\n try {\n callback(JSON.stringify(value));\n } catch (e) {\n console.error(\"Couldn't convert value into a JSON string: \", value);\n callback(null, e);\n }\n }\n } // Deserialize data we've inserted into a value column/field. We place\n // special markers into our strings to mark them as encoded; this isn't\n // as nice as a meta field, but it's the only sane thing we can do whilst\n // keeping localStorage support intact.\n //\n // Oftentimes this will just deserialize JSON content, but if we have a\n // special marker (SERIALIZED_MARKER, defined above), we will extract\n // some kind of arraybuffer/binary data/typed array out of the string.\n\n\n function deserialize(value) {\n // If we haven't marked this string as being specially serialized (i.e.\n // something other than serialized JSON), we can just return it and be\n // done with it.\n if (value.substring(0, SERIALIZED_MARKER_LENGTH) !== SERIALIZED_MARKER) {\n return JSON.parse(value);\n } // The following code deals with deserializing some kind of Blob or\n // TypedArray. First we separate out the type of data we're dealing\n // with from the data itself.\n\n\n var serializedString = value.substring(TYPE_SERIALIZED_MARKER_LENGTH);\n var type = value.substring(SERIALIZED_MARKER_LENGTH, TYPE_SERIALIZED_MARKER_LENGTH);\n var blobType; // Backwards-compatible blob type serialization strategy.\n // DBs created with older versions of localForage will simply not have the blob type.\n\n if (type === TYPE_BLOB && BLOB_TYPE_PREFIX_REGEX.test(serializedString)) {\n var matcher = serializedString.match(BLOB_TYPE_PREFIX_REGEX);\n blobType = matcher[1];\n serializedString = serializedString.substring(matcher[0].length);\n }\n\n var buffer = stringToBuffer(serializedString); // Return the right type based on the code/type set during\n // serialization.\n\n switch (type) {\n case TYPE_ARRAYBUFFER:\n return buffer;\n\n case TYPE_BLOB:\n return createBlob([buffer], {\n type: blobType\n });\n\n case TYPE_INT8ARRAY:\n return new Int8Array(buffer);\n\n case TYPE_UINT8ARRAY:\n return new Uint8Array(buffer);\n\n case TYPE_UINT8CLAMPEDARRAY:\n return new Uint8ClampedArray(buffer);\n\n case TYPE_INT16ARRAY:\n return new Int16Array(buffer);\n\n case TYPE_UINT16ARRAY:\n return new Uint16Array(buffer);\n\n case TYPE_INT32ARRAY:\n return new Int32Array(buffer);\n\n case TYPE_UINT32ARRAY:\n return new Uint32Array(buffer);\n\n case TYPE_FLOAT32ARRAY:\n return new Float32Array(buffer);\n\n case TYPE_FLOAT64ARRAY:\n return new Float64Array(buffer);\n\n default:\n throw new Error('Unkown type: ' + type);\n }\n }\n\n var localforageSerializer = {\n serialize: serialize,\n deserialize: deserialize,\n stringToBuffer: stringToBuffer,\n bufferToString: bufferToString\n };\n /*\n * Includes code from:\n *\n * base64-arraybuffer\n * https://github.com/niklasvh/base64-arraybuffer\n *\n * Copyright (c) 2012 Niklas von Hertzen\n * Licensed under the MIT license.\n */\n\n function createDbTable(t, dbInfo, callback, errorCallback) {\n t.executeSql('CREATE TABLE IF NOT EXISTS ' + dbInfo.storeName + ' ' + '(id INTEGER PRIMARY KEY, key unique, value)', [], callback, errorCallback);\n } // Open the WebSQL database (automatically creates one if one didn't\n // previously exist), using any options set in the config.\n\n\n function _initStorage$1(options) {\n var self = this;\n var dbInfo = {\n db: null\n };\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = typeof options[i] !== 'string' ? options[i].toString() : options[i];\n }\n }\n\n var dbInfoPromise = new Promise$1(function (resolve, reject) {\n // Open the database; the openDatabase API will automatically\n // create it for us if it doesn't exist.\n try {\n dbInfo.db = openDatabase(dbInfo.name, String(dbInfo.version), dbInfo.description, dbInfo.size);\n } catch (e) {\n return reject(e);\n } // Create our key/value table if it doesn't exist.\n\n\n dbInfo.db.transaction(function (t) {\n createDbTable(t, dbInfo, function () {\n self._dbInfo = dbInfo;\n resolve();\n }, function (t, error) {\n reject(error);\n });\n }, reject);\n });\n dbInfo.serializer = localforageSerializer;\n return dbInfoPromise;\n }\n\n function tryExecuteSql(t, dbInfo, sqlStatement, args, callback, errorCallback) {\n t.executeSql(sqlStatement, args, callback, function (t, error) {\n if (error.code === error.SYNTAX_ERR) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name = ?\", [dbInfo.storeName], function (t, results) {\n if (!results.rows.length) {\n // if the table is missing (was deleted)\n // re-create it table and retry\n createDbTable(t, dbInfo, function () {\n t.executeSql(sqlStatement, args, callback, errorCallback);\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n } else {\n errorCallback(t, error);\n }\n }, errorCallback);\n }\n\n function getItem$1(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName + ' WHERE key = ? LIMIT 1', [key], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).value : null; // Check to see if this is serialized content we need to\n // unpack.\n\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function iterate$1(iterator, callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT * FROM ' + dbInfo.storeName, [], function (t, results) {\n var rows = results.rows;\n var length = rows.length;\n\n for (var i = 0; i < length; i++) {\n var item = rows.item(i);\n var result = item.value; // Check to see if this is serialized content\n // we need to unpack.\n\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n result = iterator(result, item.key, i + 1); // void(0) prevents problems with redefinition\n // of `undefined`.\n\n if (result !== void 0) {\n resolve(result);\n return;\n }\n }\n\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function _setItem(key, value, callback, retriesLeft) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n // The localStorage API doesn't return undefined values in an\n // \"expected\" way, so undefined is always cast to null in all\n // drivers. See: https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n } // Save the original value to pass to the callback.\n\n\n var originalValue = value;\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'INSERT OR REPLACE INTO ' + dbInfo.storeName + ' ' + '(key, value) VALUES (?, ?)', [key, value], function () {\n resolve(originalValue);\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n // The transaction failed; check\n // to see if it's a quota error.\n if (sqlError.code === sqlError.QUOTA_ERR) {\n // We reject the callback outright for now, but\n // it's worth trying to re-run the transaction.\n // Even if the user accepts the prompt to use\n // more storage on Safari, this error will\n // be called.\n //\n // Try to re-run the transaction.\n if (retriesLeft > 0) {\n resolve(_setItem.apply(self, [key, originalValue, callback, retriesLeft - 1]));\n return;\n }\n\n reject(sqlError);\n }\n });\n }\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function setItem$1(key, value, callback) {\n return _setItem.apply(this, [key, value, callback, 1]);\n }\n\n function removeItem$1(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName + ' WHERE key = ?', [key], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n } // Deletes every item in the table.\n // TODO: Find out if this resets the AUTO_INCREMENT number.\n\n\n function clear$1(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'DELETE FROM ' + dbInfo.storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n } // Does a simple `COUNT(key)` to get the number of items stored in\n // localForage.\n\n\n function length$1(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n // Ahhh, SQL makes this one soooooo easy.\n tryExecuteSql(t, dbInfo, 'SELECT COUNT(key) as c FROM ' + dbInfo.storeName, [], function (t, results) {\n var result = results.rows.item(0).c;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n } // Return the key located at key index X; essentially gets the key from a\n // `WHERE id = ?`. This is the most efficient way I can think to implement\n // this rarely-used (in my experience) part of the API, but it can seem\n // inconsistent, because we do `INSERT OR REPLACE INTO` on `setItem()`, so\n // the ID of each key will change every time it's updated. Perhaps a stored\n // procedure for the `setItem()` SQL would solve this problem?\n // TODO: Don't change ID on `setItem()`.\n\n\n function key$1(n, callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName + ' WHERE id = ? LIMIT 1', [n + 1], function (t, results) {\n var result = results.rows.length ? results.rows.item(0).key : null;\n resolve(result);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function keys$1(callback) {\n var self = this;\n var promise = new Promise$1(function (resolve, reject) {\n self.ready().then(function () {\n var dbInfo = self._dbInfo;\n dbInfo.db.transaction(function (t) {\n tryExecuteSql(t, dbInfo, 'SELECT key FROM ' + dbInfo.storeName, [], function (t, results) {\n var keys = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n keys.push(results.rows.item(i).key);\n }\n\n resolve(keys);\n }, function (t, error) {\n reject(error);\n });\n });\n })[\"catch\"](reject);\n });\n executeCallback(promise, callback);\n return promise;\n } // https://www.w3.org/TR/webdatabase/#databases\n // > There is no way to enumerate or delete the databases available for an origin from this API.\n\n\n function getAllStoreNames(db) {\n return new Promise$1(function (resolve, reject) {\n db.transaction(function (t) {\n t.executeSql('SELECT name FROM sqlite_master ' + \"WHERE type='table' AND name <> '__WebKitDatabaseInfoTable__'\", [], function (t, results) {\n var storeNames = [];\n\n for (var i = 0; i < results.rows.length; i++) {\n storeNames.push(results.rows.item(i).name);\n }\n\n resolve({\n db: db,\n storeNames: storeNames\n });\n }, function (t, error) {\n reject(error);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n }\n\n function dropInstance$1(options, callback) {\n callback = getCallback.apply(this, arguments);\n var currentConfig = this.config();\n options = typeof options !== 'function' && options || {};\n\n if (!options.name) {\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n var db;\n\n if (options.name === currentConfig.name) {\n // use the db reference of the current instance\n db = self._dbInfo.db;\n } else {\n db = openDatabase(options.name, '', '', 0);\n }\n\n if (!options.storeName) {\n // drop all database tables\n resolve(getAllStoreNames(db));\n } else {\n resolve({\n db: db,\n storeNames: [options.storeName]\n });\n }\n }).then(function (operationInfo) {\n return new Promise$1(function (resolve, reject) {\n operationInfo.db.transaction(function (t) {\n function dropTable(storeName) {\n return new Promise$1(function (resolve, reject) {\n t.executeSql('DROP TABLE IF EXISTS ' + storeName, [], function () {\n resolve();\n }, function (t, error) {\n reject(error);\n });\n });\n }\n\n var operations = [];\n\n for (var i = 0, len = operationInfo.storeNames.length; i < len; i++) {\n operations.push(dropTable(operationInfo.storeNames[i]));\n }\n\n Promise$1.all(operations).then(function () {\n resolve();\n })[\"catch\"](function (e) {\n reject(e);\n });\n }, function (sqlError) {\n reject(sqlError);\n });\n });\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n }\n\n var webSQLStorage = {\n _driver: 'webSQLStorage',\n _initStorage: _initStorage$1,\n _support: isWebSQLValid(),\n iterate: iterate$1,\n getItem: getItem$1,\n setItem: setItem$1,\n removeItem: removeItem$1,\n clear: clear$1,\n length: length$1,\n key: key$1,\n keys: keys$1,\n dropInstance: dropInstance$1\n };\n\n function isLocalStorageValid() {\n try {\n return typeof localStorage !== 'undefined' && 'setItem' in localStorage && // in IE8 typeof localStorage.setItem === 'object'\n !!localStorage.setItem;\n } catch (e) {\n return false;\n }\n }\n\n function _getKeyPrefix(options, defaultConfig) {\n var keyPrefix = options.name + '/';\n\n if (options.storeName !== defaultConfig.storeName) {\n keyPrefix += options.storeName + '/';\n }\n\n return keyPrefix;\n } // Check if localStorage throws when saving an item\n\n\n function checkIfLocalStorageThrows() {\n var localStorageTestKey = '_localforage_support_test';\n\n try {\n localStorage.setItem(localStorageTestKey, true);\n localStorage.removeItem(localStorageTestKey);\n return false;\n } catch (e) {\n return true;\n }\n } // Check if localStorage is usable and allows to save an item\n // This method checks if localStorage is usable in Safari Private Browsing\n // mode, or in any other case where the available quota for localStorage\n // is 0 and there wasn't any saved items yet.\n\n\n function _isLocalStorageUsable() {\n return !checkIfLocalStorageThrows() || localStorage.length > 0;\n } // Config the localStorage backend, using options set in the config.\n\n\n function _initStorage$2(options) {\n var self = this;\n var dbInfo = {};\n\n if (options) {\n for (var i in options) {\n dbInfo[i] = options[i];\n }\n }\n\n dbInfo.keyPrefix = _getKeyPrefix(options, self._defaultConfig);\n\n if (!_isLocalStorageUsable()) {\n return Promise$1.reject();\n }\n\n self._dbInfo = dbInfo;\n dbInfo.serializer = localforageSerializer;\n return Promise$1.resolve();\n } // Remove all keys from the datastore, effectively destroying all data in\n // the app's key/value store!\n\n\n function clear$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var keyPrefix = self._dbInfo.keyPrefix;\n\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n executeCallback(promise, callback);\n return promise;\n } // Retrieve an item from the store. Unlike the original async_storage\n // library in Gaia, we don't modify return values at all. If a key's value\n // is `undefined`, we pass that value to the callback function.\n\n\n function getItem$2(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result = localStorage.getItem(dbInfo.keyPrefix + key); // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the key\n // is likely undefined and we'll pass it straight to the\n // callback.\n\n if (result) {\n result = dbInfo.serializer.deserialize(result);\n }\n\n return result;\n });\n executeCallback(promise, callback);\n return promise;\n } // Iterate over all items in the store.\n\n\n function iterate$2(iterator, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var keyPrefix = dbInfo.keyPrefix;\n var keyPrefixLength = keyPrefix.length;\n var length = localStorage.length; // We use a dedicated iterator instead of the `i` variable below\n // so other keys we fetch in localStorage aren't counted in\n // the `iterationNumber` argument passed to the `iterate()`\n // callback.\n //\n // See: github.com/mozilla/localForage/pull/435#discussion_r38061530\n\n var iterationNumber = 1;\n\n for (var i = 0; i < length; i++) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) !== 0) {\n continue;\n }\n\n var value = localStorage.getItem(key); // If a result was found, parse it from the serialized\n // string into a JS object. If result isn't truthy, the\n // key is likely undefined and we'll pass it straight\n // to the iterator.\n\n if (value) {\n value = dbInfo.serializer.deserialize(value);\n }\n\n value = iterator(value, key.substring(keyPrefixLength), iterationNumber++);\n\n if (value !== void 0) {\n return value;\n }\n }\n });\n executeCallback(promise, callback);\n return promise;\n } // Same as localStorage's key() method, except takes a callback.\n\n\n function key$2(n, callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var result;\n\n try {\n result = localStorage.key(n);\n } catch (error) {\n result = null;\n } // Remove the prefix from the key, if a key is found.\n\n\n if (result) {\n result = result.substring(dbInfo.keyPrefix.length);\n }\n\n return result;\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function keys$2(callback) {\n var self = this;\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n var length = localStorage.length;\n var keys = [];\n\n for (var i = 0; i < length; i++) {\n var itemKey = localStorage.key(i);\n\n if (itemKey.indexOf(dbInfo.keyPrefix) === 0) {\n keys.push(itemKey.substring(dbInfo.keyPrefix.length));\n }\n }\n\n return keys;\n });\n executeCallback(promise, callback);\n return promise;\n } // Supply the number of keys in the datastore to the callback function.\n\n\n function length$2(callback) {\n var self = this;\n var promise = self.keys().then(function (keys) {\n return keys.length;\n });\n executeCallback(promise, callback);\n return promise;\n } // Remove an item from the store, nice and simple.\n\n\n function removeItem$2(key, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = self.ready().then(function () {\n var dbInfo = self._dbInfo;\n localStorage.removeItem(dbInfo.keyPrefix + key);\n });\n executeCallback(promise, callback);\n return promise;\n } // Set a key's value and run an optional callback once the value is set.\n // Unlike Gaia's implementation, the callback function is passed the value,\n // in case you want to operate on that value only after you're sure it\n // saved, or something like that.\n\n\n function setItem$2(key, value, callback) {\n var self = this;\n key = normalizeKey(key);\n var promise = self.ready().then(function () {\n // Convert undefined values to null.\n // https://github.com/mozilla/localForage/pull/42\n if (value === undefined) {\n value = null;\n } // Save the original value to pass to the callback.\n\n\n var originalValue = value;\n return new Promise$1(function (resolve, reject) {\n var dbInfo = self._dbInfo;\n dbInfo.serializer.serialize(value, function (value, error) {\n if (error) {\n reject(error);\n } else {\n try {\n localStorage.setItem(dbInfo.keyPrefix + key, value);\n resolve(originalValue);\n } catch (e) {\n // localStorage capacity exceeded.\n // TODO: Make this a specific error/event.\n if (e.name === 'QuotaExceededError' || e.name === 'NS_ERROR_DOM_QUOTA_REACHED') {\n reject(e);\n }\n\n reject(e);\n }\n }\n });\n });\n });\n executeCallback(promise, callback);\n return promise;\n }\n\n function dropInstance$2(options, callback) {\n callback = getCallback.apply(this, arguments);\n options = typeof options !== 'function' && options || {};\n\n if (!options.name) {\n var currentConfig = this.config();\n options.name = options.name || currentConfig.name;\n options.storeName = options.storeName || currentConfig.storeName;\n }\n\n var self = this;\n var promise;\n\n if (!options.name) {\n promise = Promise$1.reject('Invalid arguments');\n } else {\n promise = new Promise$1(function (resolve) {\n if (!options.storeName) {\n resolve(options.name + '/');\n } else {\n resolve(_getKeyPrefix(options, self._defaultConfig));\n }\n }).then(function (keyPrefix) {\n for (var i = localStorage.length - 1; i >= 0; i--) {\n var key = localStorage.key(i);\n\n if (key.indexOf(keyPrefix) === 0) {\n localStorage.removeItem(key);\n }\n }\n });\n }\n\n executeCallback(promise, callback);\n return promise;\n }\n\n var localStorageWrapper = {\n _driver: 'localStorageWrapper',\n _initStorage: _initStorage$2,\n _support: isLocalStorageValid(),\n iterate: iterate$2,\n getItem: getItem$2,\n setItem: setItem$2,\n removeItem: removeItem$2,\n clear: clear$2,\n length: length$2,\n key: key$2,\n keys: keys$2,\n dropInstance: dropInstance$2\n };\n\n var sameValue = function sameValue(x, y) {\n return x === y || typeof x === 'number' && typeof y === 'number' && isNaN(x) && isNaN(y);\n };\n\n var includes = function includes(array, searchElement) {\n var len = array.length;\n var i = 0;\n\n while (i < len) {\n if (sameValue(array[i], searchElement)) {\n return true;\n }\n\n i++;\n }\n\n return false;\n };\n\n var isArray = Array.isArray || function (arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }; // Drivers are stored here when `defineDriver()` is called.\n // They are shared across all instances of localForage.\n\n\n var DefinedDrivers = {};\n var DriverSupport = {};\n var DefaultDrivers = {\n INDEXEDDB: asyncStorage,\n WEBSQL: webSQLStorage,\n LOCALSTORAGE: localStorageWrapper\n };\n var DefaultDriverOrder = [DefaultDrivers.INDEXEDDB._driver, DefaultDrivers.WEBSQL._driver, DefaultDrivers.LOCALSTORAGE._driver];\n var OptionalDriverMethods = ['dropInstance'];\n var LibraryMethods = ['clear', 'getItem', 'iterate', 'key', 'keys', 'length', 'removeItem', 'setItem'].concat(OptionalDriverMethods);\n var DefaultConfig = {\n description: '',\n driver: DefaultDriverOrder.slice(),\n name: 'localforage',\n // Default DB size is _JUST UNDER_ 5MB, as it's the highest size\n // we can use without a prompt.\n size: 4980736,\n storeName: 'keyvaluepairs',\n version: 1.0\n };\n\n function callWhenReady(localForageInstance, libraryMethod) {\n localForageInstance[libraryMethod] = function () {\n var _args = arguments;\n return localForageInstance.ready().then(function () {\n return localForageInstance[libraryMethod].apply(localForageInstance, _args);\n });\n };\n }\n\n function extend() {\n for (var i = 1; i < arguments.length; i++) {\n var arg = arguments[i];\n\n if (arg) {\n for (var _key in arg) {\n if (arg.hasOwnProperty(_key)) {\n if (isArray(arg[_key])) {\n arguments[0][_key] = arg[_key].slice();\n } else {\n arguments[0][_key] = arg[_key];\n }\n }\n }\n }\n }\n\n return arguments[0];\n }\n\n var LocalForage = function () {\n function LocalForage(options) {\n _classCallCheck(this, LocalForage);\n\n for (var driverTypeKey in DefaultDrivers) {\n if (DefaultDrivers.hasOwnProperty(driverTypeKey)) {\n var driver = DefaultDrivers[driverTypeKey];\n var driverName = driver._driver;\n this[driverTypeKey] = driverName;\n\n if (!DefinedDrivers[driverName]) {\n // we don't need to wait for the promise,\n // since the default drivers can be defined\n // in a blocking manner\n this.defineDriver(driver);\n }\n }\n }\n\n this._defaultConfig = extend({}, DefaultConfig);\n this._config = extend({}, this._defaultConfig, options);\n this._driverSet = null;\n this._initDriver = null;\n this._ready = false;\n this._dbInfo = null;\n\n this._wrapLibraryMethodsWithReady();\n\n this.setDriver(this._config.driver)[\"catch\"](function () {});\n } // Set any config values for localForage; can be called anytime before\n // the first API call (e.g. `getItem`, `setItem`).\n // We loop through options so we don't overwrite existing config\n // values.\n\n\n LocalForage.prototype.config = function config(options) {\n // If the options argument is an object, we use it to set values.\n // Otherwise, we return either a specified config value or all\n // config values.\n if ((typeof options === 'undefined' ? 'undefined' : _typeof(options)) === 'object') {\n // If localforage is ready and fully initialized, we can't set\n // any new configuration values. Instead, we return an error.\n if (this._ready) {\n return new Error(\"Can't call config() after localforage \" + 'has been used.');\n }\n\n for (var i in options) {\n if (i === 'storeName') {\n options[i] = options[i].replace(/\\W/g, '_');\n }\n\n if (i === 'version' && typeof options[i] !== 'number') {\n return new Error('Database version must be a number.');\n }\n\n this._config[i] = options[i];\n } // after all config options are set and\n // the driver option is used, try setting it\n\n\n if ('driver' in options && options.driver) {\n return this.setDriver(this._config.driver);\n }\n\n return true;\n } else if (typeof options === 'string') {\n return this._config[options];\n } else {\n return this._config;\n }\n }; // Used to define a custom driver, shared across all instances of\n // localForage.\n\n\n LocalForage.prototype.defineDriver = function defineDriver(driverObject, callback, errorCallback) {\n var promise = new Promise$1(function (resolve, reject) {\n try {\n var driverName = driverObject._driver;\n var complianceError = new Error('Custom driver not compliant; see ' + 'https://mozilla.github.io/localForage/#definedriver'); // A driver name should be defined and not overlap with the\n // library-defined, default drivers.\n\n if (!driverObject._driver) {\n reject(complianceError);\n return;\n }\n\n var driverMethods = LibraryMethods.concat('_initStorage');\n\n for (var i = 0, len = driverMethods.length; i < len; i++) {\n var driverMethodName = driverMethods[i]; // when the property is there,\n // it should be a method even when optional\n\n var isRequired = !includes(OptionalDriverMethods, driverMethodName);\n\n if ((isRequired || driverObject[driverMethodName]) && typeof driverObject[driverMethodName] !== 'function') {\n reject(complianceError);\n return;\n }\n }\n\n var configureMissingMethods = function configureMissingMethods() {\n var methodNotImplementedFactory = function methodNotImplementedFactory(methodName) {\n return function () {\n var error = new Error('Method ' + methodName + ' is not implemented by the current driver');\n var promise = Promise$1.reject(error);\n executeCallback(promise, arguments[arguments.length - 1]);\n return promise;\n };\n };\n\n for (var _i = 0, _len = OptionalDriverMethods.length; _i < _len; _i++) {\n var optionalDriverMethod = OptionalDriverMethods[_i];\n\n if (!driverObject[optionalDriverMethod]) {\n driverObject[optionalDriverMethod] = methodNotImplementedFactory(optionalDriverMethod);\n }\n }\n };\n\n configureMissingMethods();\n\n var setDriverSupport = function setDriverSupport(support) {\n if (DefinedDrivers[driverName]) {\n console.info('Redefining LocalForage driver: ' + driverName);\n }\n\n DefinedDrivers[driverName] = driverObject;\n DriverSupport[driverName] = support; // don't use a then, so that we can define\n // drivers that have simple _support methods\n // in a blocking manner\n\n resolve();\n };\n\n if ('_support' in driverObject) {\n if (driverObject._support && typeof driverObject._support === 'function') {\n driverObject._support().then(setDriverSupport, reject);\n } else {\n setDriverSupport(!!driverObject._support);\n }\n } else {\n setDriverSupport(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n executeTwoCallbacks(promise, callback, errorCallback);\n return promise;\n };\n\n LocalForage.prototype.driver = function driver() {\n return this._driver || null;\n };\n\n LocalForage.prototype.getDriver = function getDriver(driverName, callback, errorCallback) {\n var getDriverPromise = DefinedDrivers[driverName] ? Promise$1.resolve(DefinedDrivers[driverName]) : Promise$1.reject(new Error('Driver not found.'));\n executeTwoCallbacks(getDriverPromise, callback, errorCallback);\n return getDriverPromise;\n };\n\n LocalForage.prototype.getSerializer = function getSerializer(callback) {\n var serializerPromise = Promise$1.resolve(localforageSerializer);\n executeTwoCallbacks(serializerPromise, callback);\n return serializerPromise;\n };\n\n LocalForage.prototype.ready = function ready(callback) {\n var self = this;\n\n var promise = self._driverSet.then(function () {\n if (self._ready === null) {\n self._ready = self._initDriver();\n }\n\n return self._ready;\n });\n\n executeTwoCallbacks(promise, callback, callback);\n return promise;\n };\n\n LocalForage.prototype.setDriver = function setDriver(drivers, callback, errorCallback) {\n var self = this;\n\n if (!isArray(drivers)) {\n drivers = [drivers];\n }\n\n var supportedDrivers = this._getSupportedDrivers(drivers);\n\n function setDriverToConfig() {\n self._config.driver = self.driver();\n }\n\n function extendSelfWithDriver(driver) {\n self._extend(driver);\n\n setDriverToConfig();\n self._ready = self._initStorage(self._config);\n return self._ready;\n }\n\n function initDriver(supportedDrivers) {\n return function () {\n var currentDriverIndex = 0;\n\n function driverPromiseLoop() {\n while (currentDriverIndex < supportedDrivers.length) {\n var driverName = supportedDrivers[currentDriverIndex];\n currentDriverIndex++;\n self._dbInfo = null;\n self._ready = null;\n return self.getDriver(driverName).then(extendSelfWithDriver)[\"catch\"](driverPromiseLoop);\n }\n\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n }\n\n return driverPromiseLoop();\n };\n } // There might be a driver initialization in progress\n // so wait for it to finish in order to avoid a possible\n // race condition to set _dbInfo\n\n\n var oldDriverSetDone = this._driverSet !== null ? this._driverSet[\"catch\"](function () {\n return Promise$1.resolve();\n }) : Promise$1.resolve();\n this._driverSet = oldDriverSetDone.then(function () {\n var driverName = supportedDrivers[0];\n self._dbInfo = null;\n self._ready = null;\n return self.getDriver(driverName).then(function (driver) {\n self._driver = driver._driver;\n setDriverToConfig();\n\n self._wrapLibraryMethodsWithReady();\n\n self._initDriver = initDriver(supportedDrivers);\n });\n })[\"catch\"](function () {\n setDriverToConfig();\n var error = new Error('No available storage method found.');\n self._driverSet = Promise$1.reject(error);\n return self._driverSet;\n });\n executeTwoCallbacks(this._driverSet, callback, errorCallback);\n return this._driverSet;\n };\n\n LocalForage.prototype.supports = function supports(driverName) {\n return !!DriverSupport[driverName];\n };\n\n LocalForage.prototype._extend = function _extend(libraryMethodsAndProperties) {\n extend(this, libraryMethodsAndProperties);\n };\n\n LocalForage.prototype._getSupportedDrivers = function _getSupportedDrivers(drivers) {\n var supportedDrivers = [];\n\n for (var i = 0, len = drivers.length; i < len; i++) {\n var driverName = drivers[i];\n\n if (this.supports(driverName)) {\n supportedDrivers.push(driverName);\n }\n }\n\n return supportedDrivers;\n };\n\n LocalForage.prototype._wrapLibraryMethodsWithReady = function _wrapLibraryMethodsWithReady() {\n // Add a stub for each driver API method that delays the call to the\n // corresponding driver method until localForage is ready. These stubs\n // will be replaced by the driver methods as soon as the driver is\n // loaded, so there is no performance impact.\n for (var i = 0, len = LibraryMethods.length; i < len; i++) {\n callWhenReady(this, LibraryMethods[i]);\n }\n };\n\n LocalForage.prototype.createInstance = function createInstance(options) {\n return new LocalForage(options);\n };\n\n return LocalForage;\n }(); // The actual localForage object that we expose as a module or via a\n // global. It's extended by pulling in one of our other libraries.\n\n\n var localforage_js = new LocalForage();\n module.exports = localforage_js;\n }, {\n \"3\": 3\n }]\n }, {}, [4])(4);\n});","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.oauthRedirectLink = exports.OAUTH_PARAMS = exports.REDIRECT_URI = exports.GOOGLE_URL_ROOT = exports.GOOGLE_CLIENT_ID = exports.GOOGLE_AUTH_ENDPOINT = undefined;\n\nvar _document = require('global/document');\n\nvar _document2 = _interopRequireDefault(_document);\n\nvar _querystringify = require('querystringify');\n\nvar _querystringify2 = _interopRequireDefault(_querystringify);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar GOOGLE_AUTH_ENDPOINT = exports.GOOGLE_AUTH_ENDPOINT = 'https://accounts.google.com/o/oauth2/auth';\nvar GOOGLE_CLIENT_ID = exports.GOOGLE_CLIENT_ID = '45471411055-ornt4svd2miog6dnopve7qtmh5mnu6id.apps.googleusercontent.com';\nvar GOOGLE_URL_ROOT = exports.GOOGLE_URL_ROOT = 'https://www.googleapis.com/';\nvar redirectOrigin = 'http://127.0.0.1';\n\nif (_document2.default.location) {\n redirectOrigin = _document2.default.location.origin;\n}\n\nvar REDIRECT_URI = exports.REDIRECT_URI = redirectOrigin + '/auth/g/redirect';\nvar OAUTH_PARAMS = exports.OAUTH_PARAMS = {\n type: 'web_server',\n client_id: GOOGLE_CLIENT_ID,\n redirect_uri: REDIRECT_URI,\n response_type: 'code',\n scope: 'https://www.googleapis.com/auth/userinfo.email',\n prompt: 'select_account'\n};\nvar oauthRedirectLink = exports.oauthRedirectLink = [GOOGLE_AUTH_ENDPOINT, _querystringify2.default.stringify(OAUTH_PARAMS)].join('?');","module.exports = function (stream, cb) {\n var chunks = [];\n stream.on('data', function (chunk) {\n chunks.push(chunk);\n });\n stream.once('end', function () {\n if (cb) cb(null, Buffer.concat(chunks));\n cb = null;\n });\n stream.once('error', function (err) {\n if (cb) cb(err);\n cb = null;\n });\n};","var capability = require('./capability');\n\nvar inherits = require('inherits');\n\nvar response = require('./response');\n\nvar stream = require('readable-stream');\n\nvar toArrayBuffer = require('to-arraybuffer');\n\nvar IncomingMessage = response.IncomingMessage;\nvar rStates = response.readyStates;\n\nfunction decideMode(preferBinary, useFetch) {\n if (capability.fetch && useFetch) {\n return 'fetch';\n } else if (capability.mozchunkedarraybuffer) {\n return 'moz-chunked-arraybuffer';\n } else if (capability.msstream) {\n return 'ms-stream';\n } else if (capability.arraybuffer && preferBinary) {\n return 'arraybuffer';\n } else if (capability.vbArray && preferBinary) {\n return 'text:vbarray';\n } else {\n return 'text';\n }\n}\n\nvar ClientRequest = module.exports = function (opts) {\n var self = this;\n stream.Writable.call(self);\n self._opts = opts;\n self._body = [];\n self._headers = {};\n if (opts.auth) self.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'));\n Object.keys(opts.headers).forEach(function (name) {\n self.setHeader(name, opts.headers[name]);\n });\n var preferBinary;\n var useFetch = true;\n\n if (opts.mode === 'disable-fetch' || 'requestTimeout' in opts && !capability.abortController) {\n // If the use of XHR should be preferred. Not typically needed.\n useFetch = false;\n preferBinary = true;\n } else if (opts.mode === 'prefer-streaming') {\n // If streaming is a high priority but binary compatibility and\n // the accuracy of the 'content-type' header aren't\n preferBinary = false;\n } else if (opts.mode === 'allow-wrong-content-type') {\n // If streaming is more important than preserving the 'content-type' header\n preferBinary = !capability.overrideMimeType;\n } else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n // Use binary if text streaming may corrupt data or the content-type header, or for speed\n preferBinary = true;\n } else {\n throw new Error('Invalid value for opts.mode');\n }\n\n self._mode = decideMode(preferBinary, useFetch);\n self._fetchTimer = null;\n self.on('finish', function () {\n self._onFinish();\n });\n};\n\ninherits(ClientRequest, stream.Writable);\n\nClientRequest.prototype.setHeader = function (name, value) {\n var self = this;\n var lowerName = name.toLowerCase(); // This check is not necessary, but it prevents warnings from browsers about setting unsafe\n // headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n // http-browserify did it, so I will too.\n\n if (unsafeHeaders.indexOf(lowerName) !== -1) return;\n self._headers[lowerName] = {\n name: name,\n value: value\n };\n};\n\nClientRequest.prototype.getHeader = function (name) {\n var header = this._headers[name.toLowerCase()];\n\n if (header) return header.value;\n return null;\n};\n\nClientRequest.prototype.removeHeader = function (name) {\n var self = this;\n delete self._headers[name.toLowerCase()];\n};\n\nClientRequest.prototype._onFinish = function () {\n var self = this;\n if (self._destroyed) return;\n var opts = self._opts;\n var headersObj = self._headers;\n var body = null;\n\n if (opts.method !== 'GET' && opts.method !== 'HEAD') {\n if (capability.arraybuffer) {\n body = toArrayBuffer(Buffer.concat(self._body));\n } else if (capability.blobConstructor) {\n body = new global.Blob(self._body.map(function (buffer) {\n return toArrayBuffer(buffer);\n }), {\n type: (headersObj['content-type'] || {}).value || ''\n });\n } else {\n // get utf8 string\n body = Buffer.concat(self._body).toString();\n }\n } // create flattened list of headers\n\n\n var headersList = [];\n Object.keys(headersObj).forEach(function (keyName) {\n var name = headersObj[keyName].name;\n var value = headersObj[keyName].value;\n\n if (Array.isArray(value)) {\n value.forEach(function (v) {\n headersList.push([name, v]);\n });\n } else {\n headersList.push([name, value]);\n }\n });\n\n if (self._mode === 'fetch') {\n var signal = null;\n var fetchTimer = null;\n\n if (capability.abortController) {\n var controller = new AbortController();\n signal = controller.signal;\n self._fetchAbortController = controller;\n\n if ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n self._fetchTimer = global.setTimeout(function () {\n self.emit('requestTimeout');\n if (self._fetchAbortController) self._fetchAbortController.abort();\n }, opts.requestTimeout);\n }\n }\n\n global.fetch(self._opts.url, {\n method: self._opts.method,\n headers: headersList,\n body: body || undefined,\n mode: 'cors',\n credentials: opts.withCredentials ? 'include' : 'same-origin',\n signal: signal\n }).then(function (response) {\n self._fetchResponse = response;\n\n self._connect();\n }, function (reason) {\n global.clearTimeout(self._fetchTimer);\n if (!self._destroyed) self.emit('error', reason);\n });\n } else {\n var xhr = self._xhr = new global.XMLHttpRequest();\n\n try {\n xhr.open(self._opts.method, self._opts.url, true);\n } catch (err) {\n process.nextTick(function () {\n self.emit('error', err);\n });\n return;\n } // Can't set responseType on really old browsers\n\n\n if ('responseType' in xhr) xhr.responseType = self._mode.split(':')[0];\n if ('withCredentials' in xhr) xhr.withCredentials = !!opts.withCredentials;\n if (self._mode === 'text' && 'overrideMimeType' in xhr) xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\n if ('requestTimeout' in opts) {\n xhr.timeout = opts.requestTimeout;\n\n xhr.ontimeout = function () {\n self.emit('requestTimeout');\n };\n }\n\n headersList.forEach(function (header) {\n xhr.setRequestHeader(header[0], header[1]);\n });\n self._response = null;\n\n xhr.onreadystatechange = function () {\n switch (xhr.readyState) {\n case rStates.LOADING:\n case rStates.DONE:\n self._onXHRProgress();\n\n break;\n }\n }; // Necessary for streaming in Firefox, since xhr.response is ONLY defined\n // in onprogress, not in onreadystatechange with xhr.readyState = 3\n\n\n if (self._mode === 'moz-chunked-arraybuffer') {\n xhr.onprogress = function () {\n self._onXHRProgress();\n };\n }\n\n xhr.onerror = function () {\n if (self._destroyed) return;\n self.emit('error', new Error('XHR error'));\n };\n\n try {\n xhr.send(body);\n } catch (err) {\n process.nextTick(function () {\n self.emit('error', err);\n });\n return;\n }\n }\n};\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\n\n\nfunction statusValid(xhr) {\n try {\n var status = xhr.status;\n return status !== null && status !== 0;\n } catch (e) {\n return false;\n }\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n var self = this;\n if (!statusValid(self._xhr) || self._destroyed) return;\n if (!self._response) self._connect();\n\n self._response._onXHRProgress();\n};\n\nClientRequest.prototype._connect = function () {\n var self = this;\n if (self._destroyed) return;\n self._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer);\n\n self._response.on('error', function (err) {\n self.emit('error', err);\n });\n\n self.emit('response', self._response);\n};\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n var self = this;\n\n self._body.push(chunk);\n\n cb();\n};\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n var self = this;\n self._destroyed = true;\n global.clearTimeout(self._fetchTimer);\n if (self._response) self._response._destroyed = true;\n if (self._xhr) self._xhr.abort();else if (self._fetchAbortController) self._fetchAbortController.abort();\n};\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n var self = this;\n\n if (typeof data === 'function') {\n cb = data;\n data = undefined;\n }\n\n stream.Writable.prototype.end.call(self, data, encoding, cb);\n};\n\nClientRequest.prototype.flushHeaders = function () {};\n\nClientRequest.prototype.setTimeout = function () {};\n\nClientRequest.prototype.setNoDelay = function () {};\n\nClientRequest.prototype.setSocketKeepAlive = function () {}; // Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\n\n\nvar unsafeHeaders = ['accept-charset', 'accept-encoding', 'access-control-request-headers', 'access-control-request-method', 'connection', 'content-length', 'cookie', 'cookie2', 'date', 'dnt', 'expect', 'host', 'keep-alive', 'origin', 'referer', 'te', 'trailer', 'transfer-encoding', 'upgrade', 'via'];","var Buffer = require('buffer').Buffer;\n\nmodule.exports = function (buf) {\n // If the buffer is backed by a Uint8Array, a faster version will work\n if (buf instanceof Uint8Array) {\n // If the buffer isn't a subarray, return the underlying ArrayBuffer\n if (buf.byteOffset === 0 && buf.byteLength === buf.buffer.byteLength) {\n return buf.buffer;\n } else if (typeof buf.buffer.slice === 'function') {\n // Otherwise we need to get a proper copy\n return buf.buffer.slice(buf.byteOffset, buf.byteOffset + buf.byteLength);\n }\n }\n\n if (Buffer.isBuffer(buf)) {\n // This is the slow version that will work with any Buffer\n // implementation (even in old browsers)\n var arrayCopy = new Uint8Array(buf.length);\n var len = buf.length;\n\n for (var i = 0; i < len; i++) {\n arrayCopy[i] = buf[i];\n }\n\n return arrayCopy.buffer;\n } else {\n throw new Error('Argument must be a Buffer');\n }\n};","module.exports = {\n \"100\": \"Continue\",\n \"101\": \"Switching Protocols\",\n \"102\": \"Processing\",\n \"200\": \"OK\",\n \"201\": \"Created\",\n \"202\": \"Accepted\",\n \"203\": \"Non-Authoritative Information\",\n \"204\": \"No Content\",\n \"205\": \"Reset Content\",\n \"206\": \"Partial Content\",\n \"207\": \"Multi-Status\",\n \"208\": \"Already Reported\",\n \"226\": \"IM Used\",\n \"300\": \"Multiple Choices\",\n \"301\": \"Moved Permanently\",\n \"302\": \"Found\",\n \"303\": \"See Other\",\n \"304\": \"Not Modified\",\n \"305\": \"Use Proxy\",\n \"307\": \"Temporary Redirect\",\n \"308\": \"Permanent Redirect\",\n \"400\": \"Bad Request\",\n \"401\": \"Unauthorized\",\n \"402\": \"Payment Required\",\n \"403\": \"Forbidden\",\n \"404\": \"Not Found\",\n \"405\": \"Method Not Allowed\",\n \"406\": \"Not Acceptable\",\n \"407\": \"Proxy Authentication Required\",\n \"408\": \"Request Timeout\",\n \"409\": \"Conflict\",\n \"410\": \"Gone\",\n \"411\": \"Length Required\",\n \"412\": \"Precondition Failed\",\n \"413\": \"Payload Too Large\",\n \"414\": \"URI Too Long\",\n \"415\": \"Unsupported Media Type\",\n \"416\": \"Range Not Satisfiable\",\n \"417\": \"Expectation Failed\",\n \"418\": \"I'm a teapot\",\n \"421\": \"Misdirected Request\",\n \"422\": \"Unprocessable Entity\",\n \"423\": \"Locked\",\n \"424\": \"Failed Dependency\",\n \"425\": \"Unordered Collection\",\n \"426\": \"Upgrade Required\",\n \"428\": \"Precondition Required\",\n \"429\": \"Too Many Requests\",\n \"431\": \"Request Header Fields Too Large\",\n \"451\": \"Unavailable For Legal Reasons\",\n \"500\": \"Internal Server Error\",\n \"501\": \"Not Implemented\",\n \"502\": \"Bad Gateway\",\n \"503\": \"Service Unavailable\",\n \"504\": \"Gateway Timeout\",\n \"505\": \"HTTP Version Not Supported\",\n \"506\": \"Variant Also Negotiates\",\n \"507\": \"Insufficient Storage\",\n \"508\": \"Loop Detected\",\n \"509\": \"Bandwidth Limit Exceeded\",\n \"510\": \"Not Extended\",\n \"511\": \"Network Authentication Required\"\n};","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;\n\n(function (root) {\n /** Detect free variables */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n var freeModule = typeof module == 'object' && module && !module.nodeType && module;\n var freeGlobal = typeof global == 'object' && global;\n\n if (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal || freeGlobal.self === freeGlobal) {\n root = freeGlobal;\n }\n /**\n * The `punycode` object.\n * @name punycode\n * @type Object\n */\n\n\n var punycode,\n\n /** Highest positive signed 32-bit float value */\n maxInt = 2147483647,\n // aka. 0x7FFFFFFF or 2^31-1\n\n /** Bootstring parameters */\n base = 36,\n tMin = 1,\n tMax = 26,\n skew = 38,\n damp = 700,\n initialBias = 72,\n initialN = 128,\n // 0x80\n delimiter = '-',\n // '\\x2D'\n\n /** Regular expressions */\n regexPunycode = /^xn--/,\n regexNonASCII = /[^\\x20-\\x7E]/,\n // unprintable ASCII chars + non-ASCII chars\n regexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g,\n // RFC 3490 separators\n\n /** Error messages */\n errors = {\n 'overflow': 'Overflow: input needs wider integers to process',\n 'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n 'invalid-input': 'Invalid input'\n },\n\n /** Convenience shortcuts */\n baseMinusTMin = base - tMin,\n floor = Math.floor,\n stringFromCharCode = String.fromCharCode,\n\n /** Temporary variable */\n key;\n /*--------------------------------------------------------------------------*/\n\n /**\n * A generic error utility function.\n * @private\n * @param {String} type The error type.\n * @returns {Error} Throws a `RangeError` with the applicable error message.\n */\n\n function error(type) {\n throw new RangeError(errors[type]);\n }\n /**\n * A generic `Array#map` utility function.\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} callback The function that gets called for every array\n * item.\n * @returns {Array} A new array of values returned by the callback function.\n */\n\n\n function map(array, fn) {\n var length = array.length;\n var result = [];\n\n while (length--) {\n result[length] = fn(array[length]);\n }\n\n return result;\n }\n /**\n * A simple `Array#map`-like wrapper to work with domain name strings or email\n * addresses.\n * @private\n * @param {String} domain The domain name or email address.\n * @param {Function} callback The function that gets called for every\n * character.\n * @returns {Array} A new string of characters returned by the callback\n * function.\n */\n\n\n function mapDomain(string, fn) {\n var parts = string.split('@');\n var result = '';\n\n if (parts.length > 1) {\n // In email addresses, only the domain name should be punycoded. Leave\n // the local part (i.e. everything up to `@`) intact.\n result = parts[0] + '@';\n string = parts[1];\n } // Avoid `split(regex)` for IE8 compatibility. See #17.\n\n\n string = string.replace(regexSeparators, '\\x2E');\n var labels = string.split('.');\n var encoded = map(labels, fn).join('.');\n return result + encoded;\n }\n /**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n * @see `punycode.ucs2.encode`\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode.ucs2\n * @name decode\n * @param {String} string The Unicode input string (UCS-2).\n * @returns {Array} The new array of code points.\n */\n\n\n function ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n\n while (counter < length) {\n value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n }\n /**\n * Creates a string based on an array of numeric code points.\n * @see `punycode.ucs2.decode`\n * @memberOf punycode.ucs2\n * @name encode\n * @param {Array} codePoints The array of numeric code points.\n * @returns {String} The new Unicode string (UCS-2).\n */\n\n\n function ucs2encode(array) {\n return map(array, function (value) {\n var output = '';\n\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n\n output += stringFromCharCode(value);\n return output;\n }).join('');\n }\n /**\n * Converts a basic code point into a digit/integer.\n * @see `digitToBasic()`\n * @private\n * @param {Number} codePoint The basic numeric code point value.\n * @returns {Number} The numeric value of a basic code point (for use in\n * representing integers) in the range `0` to `base - 1`, or `base` if\n * the code point does not represent a value.\n */\n\n\n function basicToDigit(codePoint) {\n if (codePoint - 48 < 10) {\n return codePoint - 22;\n }\n\n if (codePoint - 65 < 26) {\n return codePoint - 65;\n }\n\n if (codePoint - 97 < 26) {\n return codePoint - 97;\n }\n\n return base;\n }\n /**\n * Converts a digit/integer into a basic code point.\n * @see `basicToDigit()`\n * @private\n * @param {Number} digit The numeric value of a basic code point.\n * @returns {Number} The basic code point whose value (when used for\n * representing integers) is `digit`, which needs to be in the range\n * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n * used; else, the lowercase form is used. The behavior is undefined\n * if `flag` is non-zero and `digit` has no uppercase form.\n */\n\n\n function digitToBasic(digit, flag) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n }\n /**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n * @private\n */\n\n\n function adapt(delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n\n for (;\n /* no initialization */\n delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n }\n /**\n * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n * symbols.\n * @memberOf punycode\n * @param {String} input The Punycode string of ASCII-only symbols.\n * @returns {String} The resulting string of Unicode symbols.\n */\n\n\n function decode(input) {\n // Don't use UCS-2\n var output = [],\n inputLength = input.length,\n out,\n i = 0,\n n = initialN,\n bias = initialBias,\n basic,\n j,\n index,\n oldi,\n w,\n k,\n digit,\n t,\n\n /** Cached calculation results */\n baseMinusT; // Handle the basic code points: let `basic` be the number of input code\n // points before the last delimiter, or `0` if there is none, then copy\n // the first basic code points to the output.\n\n basic = input.lastIndexOf(delimiter);\n\n if (basic < 0) {\n basic = 0;\n }\n\n for (j = 0; j < basic; ++j) {\n // if it's not a basic code point\n if (input.charCodeAt(j) >= 0x80) {\n error('not-basic');\n }\n\n output.push(input.charCodeAt(j));\n } // Main decoding loop: start just after the last delimiter if any basic code\n // points were copied; start at the beginning otherwise.\n\n\n for (index = basic > 0 ? basic + 1 : 0; index < inputLength;)\n /* no final expression */\n {\n // `index` is the index of the next character to be consumed.\n // Decode a generalized variable-length integer into `delta`,\n // which gets added to `i`. The overflow checking is easier\n // if we increase `i` as we go, then subtract off its starting\n // value at the end to obtain `delta`.\n for (oldi = i, w = 1, k = base;;\n /* no condition */\n k += base) {\n if (index >= inputLength) {\n error('invalid-input');\n }\n\n digit = basicToDigit(input.charCodeAt(index++));\n\n if (digit >= base || digit > floor((maxInt - i) / w)) {\n error('overflow');\n }\n\n i += digit * w;\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (digit < t) {\n break;\n }\n\n baseMinusT = base - t;\n\n if (w > floor(maxInt / baseMinusT)) {\n error('overflow');\n }\n\n w *= baseMinusT;\n }\n\n out = output.length + 1;\n bias = adapt(i - oldi, out, oldi == 0); // `i` was supposed to wrap around from `out` to `0`,\n // incrementing `n` each time, so we'll fix that now:\n\n if (floor(i / out) > maxInt - n) {\n error('overflow');\n }\n\n n += floor(i / out);\n i %= out; // Insert `n` at position `i` of the output\n\n output.splice(i++, 0, n);\n }\n\n return ucs2encode(output);\n }\n /**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n * @memberOf punycode\n * @param {String} input The string of Unicode symbols.\n * @returns {String} The resulting Punycode string of ASCII-only symbols.\n */\n\n\n function encode(input) {\n var n,\n delta,\n handledCPCount,\n basicLength,\n bias,\n j,\n m,\n q,\n k,\n t,\n currentValue,\n output = [],\n\n /** `inputLength` will hold the number of code points in `input`. */\n inputLength,\n\n /** Cached calculation results */\n handledCPCountPlusOne,\n baseMinusT,\n qMinusT; // Convert the input in UCS-2 to Unicode\n\n input = ucs2decode(input); // Cache the length\n\n inputLength = input.length; // Initialize the state\n\n n = initialN;\n delta = 0;\n bias = initialBias; // Handle the basic code points\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n handledCPCount = basicLength = output.length; // `handledCPCount` is the number of code points that have been handled;\n // `basicLength` is the number of basic code points.\n // Finish the basic string - if it is not empty - with a delimiter\n\n if (basicLength) {\n output.push(delimiter);\n } // Main encoding loop:\n\n\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next\n // larger one:\n for (m = maxInt, j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n } // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n // but guard against overflow\n\n\n handledCPCountPlusOne = handledCPCount + 1;\n\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n error('overflow');\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (j = 0; j < inputLength; ++j) {\n currentValue = input[j];\n\n if (currentValue < n && ++delta > maxInt) {\n error('overflow');\n }\n\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer\n for (q = delta, k = base;;\n /* no condition */\n k += base) {\n t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;\n\n if (q < t) {\n break;\n }\n\n qMinusT = q - t;\n baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q, 0)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n\n return output.join('');\n }\n /**\n * Converts a Punycode string representing a domain name or an email address\n * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n * it doesn't matter if you call it on a string that has already been\n * converted to Unicode.\n * @memberOf punycode\n * @param {String} input The Punycoded domain name or email address to\n * convert to Unicode.\n * @returns {String} The Unicode representation of the given Punycode\n * string.\n */\n\n\n function toUnicode(input) {\n return mapDomain(input, function (string) {\n return regexPunycode.test(string) ? decode(string.slice(4).toLowerCase()) : string;\n });\n }\n /**\n * Converts a Unicode string representing a domain name or an email address to\n * Punycode. Only the non-ASCII parts of the domain name will be converted,\n * i.e. it doesn't matter if you call it with a domain that's already in\n * ASCII.\n * @memberOf punycode\n * @param {String} input The domain name or email address to convert, as a\n * Unicode string.\n * @returns {String} The Punycode representation of the given domain name or\n * email address.\n */\n\n\n function toASCII(input) {\n return mapDomain(input, function (string) {\n return regexNonASCII.test(string) ? 'xn--' + encode(string) : string;\n });\n }\n /*--------------------------------------------------------------------------*/\n\n /** Define the public API */\n\n\n punycode = {\n /**\n * A string representing the current Punycode.js version number.\n * @memberOf punycode\n * @type String\n */\n 'version': '1.4.1',\n\n /**\n * An object of methods to convert from JavaScript's internal character\n * representation (UCS-2) to Unicode code points, and back.\n * @see <https://mathiasbynens.be/notes/javascript-encoding>\n * @memberOf punycode\n * @type Object\n */\n 'ucs2': {\n 'decode': ucs2decode,\n 'encode': ucs2encode\n },\n 'decode': decode,\n 'encode': encode,\n 'toASCII': toASCII,\n 'toUnicode': toUnicode\n };\n /** Expose `punycode` */\n // Some AMD build optimizers, like r.js, check for specific condition patterns\n // like the following:\n\n if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {\n define('punycode', function () {\n return punycode;\n });\n } else if (freeExports && freeModule) {\n if (module.exports == freeExports) {\n // in Node.js, io.js, or RingoJS v0.8.0+\n freeModule.exports = punycode;\n } else {\n // in Narwhal or RingoJS v0.7.0-\n for (key in punycode) {\n punycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n }\n }\n } else {\n // in Rhino or a web browser\n root.punycode = punycode;\n }\n})(this);","'use strict';\n\nmodule.exports = {\n isString: function isString(arg) {\n return typeof arg === 'string';\n },\n isObject: function isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n },\n isNull: function isNull(arg) {\n return arg === null;\n },\n isNullOrUndefined: function isNullOrUndefined(arg) {\n return arg == null;\n }\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict'; // If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function (qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n var maxKeys = 1000;\n\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length; // maxKeys <= 0 means that we should not limit keys count\n\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr,\n vstr,\n k,\n v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nvar stringifyPrimitive = function stringifyPrimitive(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function (obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function (k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n\n if (isArray(obj[k])) {\n return map(obj[k], function (v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq + encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map(xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n\n return res;\n};","var http = require('http');\n\nvar url = require('url');\n\nvar https = module.exports;\n\nfor (var key in http) {\n if (http.hasOwnProperty(key)) https[key] = http[key];\n}\n\nhttps.request = function (params, cb) {\n params = validateParams(params);\n return http.request.call(this, params, cb);\n};\n\nhttps.get = function (params, cb) {\n params = validateParams(params);\n return http.get.call(this, params, cb);\n};\n\nfunction validateParams(params) {\n if (typeof params === 'string') {\n params = url.parse(params);\n }\n\n if (!params.protocol) {\n params.protocol = 'https:';\n }\n\n if (params.protocol !== 'https:') {\n throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"');\n }\n\n return params;\n}","var wrappy = require('wrappy');\n\nmodule.exports = wrappy(once);\nmodule.exports.strict = wrappy(onceStrict);\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function value() {\n return once(this);\n },\n configurable: true\n });\n Object.defineProperty(Function.prototype, 'onceStrict', {\n value: function value() {\n return onceStrict(this);\n },\n configurable: true\n });\n});\n\nfunction once(fn) {\n var f = function f() {\n if (f.called) return f.value;\n f.called = true;\n return f.value = fn.apply(this, arguments);\n };\n\n f.called = false;\n return f;\n}\n\nfunction onceStrict(fn) {\n var f = function f() {\n if (f.called) throw new Error(f.onceError);\n f.called = true;\n return f.value = fn.apply(this, arguments);\n };\n\n var name = fn.name || 'Function wrapped with `once`';\n f.onceError = name + \" shouldn't be called more than once\";\n f.called = false;\n return f;\n}","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy;\n\nfunction wrappy(fn, cb) {\n if (fn && cb) return wrappy(fn)(cb);\n if (typeof fn !== 'function') throw new TypeError('need wrapper function');\n Object.keys(fn).forEach(function (k) {\n wrapper[k] = fn[k];\n });\n return wrapper;\n\n function wrapper() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n var ret = fn.apply(this, args);\n var cb = args[args.length - 1];\n\n if (typeof ret === 'function' && ret !== cb) {\n Object.keys(cb).forEach(function (k) {\n ret[k] = cb[k];\n });\n }\n\n return ret;\n }\n}","exports.UINT32 = require('./lib/uint32');\nexports.UINT64 = require('./lib/uint64');","/**\n\tC-like unsigned 32 bits integers in Javascript\n\tCopyright (C) 2013, Pierre Curto\n\tMIT license\n */\n;\n\n(function (root) {\n // Local cache for typical radices\n var radixPowerCache = {\n 36: UINT32(Math.pow(36, 5)),\n 16: UINT32(Math.pow(16, 7)),\n 10: UINT32(Math.pow(10, 9)),\n 2: UINT32(Math.pow(2, 30))\n };\n var radixCache = {\n 36: UINT32(36),\n 16: UINT32(16),\n 10: UINT32(10),\n 2: UINT32(2)\n };\n /**\n *\tRepresents an unsigned 32 bits integer\n * @constructor\n * @param {Number|String|Number} low bits | integer as a string \t\t | integer as a number\n * @param {Number|Number|Undefined} high bits | radix (optional, default=10)\n * @return \n */\n\n function UINT32(l, h) {\n if (!(this instanceof UINT32)) return new UINT32(l, h);\n this._low = 0;\n this._high = 0;\n this.remainder = null;\n if (typeof h == 'undefined') return fromNumber.call(this, l);\n if (typeof l == 'string') return fromString.call(this, l, h);\n fromBits.call(this, l, h);\n }\n /**\n * Set the current _UINT32_ object with its low and high bits\n * @method fromBits\n * @param {Number} low bits\n * @param {Number} high bits\n * @return ThisExpression\n */\n\n\n function fromBits(l, h) {\n this._low = l | 0;\n this._high = h | 0;\n return this;\n }\n\n UINT32.prototype.fromBits = fromBits;\n /**\n * Set the current _UINT32_ object from a number\n * @method fromNumber\n * @param {Number} number\n * @return ThisExpression\n */\n\n function fromNumber(value) {\n this._low = value & 0xFFFF;\n this._high = value >>> 16;\n return this;\n }\n\n UINT32.prototype.fromNumber = fromNumber;\n /**\n * Set the current _UINT32_ object from a string\n * @method fromString\n * @param {String} integer as a string\n * @param {Number} radix (optional, default=10)\n * @return ThisExpression\n */\n\n function fromString(s, radix) {\n var value = parseInt(s, radix || 10);\n this._low = value & 0xFFFF;\n this._high = value >>> 16;\n return this;\n }\n\n UINT32.prototype.fromString = fromString;\n /**\n * Convert this _UINT32_ to a number\n * @method toNumber\n * @return {Number} the converted UINT32\n */\n\n UINT32.prototype.toNumber = function () {\n return this._high * 65536 + this._low;\n };\n /**\n * Convert this _UINT32_ to a string\n * @method toString\n * @param {Number} radix (optional, default=10)\n * @return {String} the converted UINT32\n */\n\n\n UINT32.prototype.toString = function (radix) {\n return this.toNumber().toString(radix || 10);\n };\n /**\n * Add two _UINT32_. The current _UINT32_ stores the result\n * @method add\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.add = function (other) {\n var a00 = this._low + other._low;\n var a16 = a00 >>> 16;\n a16 += this._high + other._high;\n this._low = a00 & 0xFFFF;\n this._high = a16 & 0xFFFF;\n return this;\n };\n /**\n * Subtract two _UINT32_. The current _UINT32_ stores the result\n * @method subtract\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.subtract = function (other) {\n //TODO inline\n return this.add(other.clone().negate());\n };\n /**\n * Multiply two _UINT32_. The current _UINT32_ stores the result\n * @method multiply\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.multiply = function (other) {\n /*\n \ta = a00 + a16\n \tb = b00 + b16\n \ta*b = (a00 + a16)(b00 + b16)\n \t\t= a00b00 + a00b16 + a16b00 + a16b16\n \t\ta16b16 overflows the 32bits\n */\n var a16 = this._high;\n var a00 = this._low;\n var b16 = other._high;\n var b00 = other._low;\n /* Removed to increase speed under normal circumstances (i.e. not multiplying by 0 or 1)\n \t\t// this == 0 or other == 1: nothing to do\n \t\tif ((a00 == 0 && a16 == 0) || (b00 == 1 && b16 == 0)) return this\n \n \t\t// other == 0 or this == 1: this = other\n \t\tif ((b00 == 0 && b16 == 0) || (a00 == 1 && a16 == 0)) {\n \t\t\tthis._low = other._low\n \t\t\tthis._high = other._high\n \t\t\treturn this\n \t\t}\n */\n\n var c16, c00;\n c00 = a00 * b00;\n c16 = c00 >>> 16;\n c16 += a16 * b00;\n c16 &= 0xFFFF; // Not required but improves performance\n\n c16 += a00 * b16;\n this._low = c00 & 0xFFFF;\n this._high = c16 & 0xFFFF;\n return this;\n };\n /**\n * Divide two _UINT32_. The current _UINT32_ stores the result.\n * The remainder is made available as the _remainder_ property on\n * the _UINT32_ object. It can be null, meaning there are no remainder.\n * @method div\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.div = function (other) {\n if (other._low == 0 && other._high == 0) throw Error('division by zero'); // other == 1\n\n if (other._high == 0 && other._low == 1) {\n this.remainder = new UINT32(0);\n return this;\n } // other > this: 0\n\n\n if (other.gt(this)) {\n this.remainder = this.clone();\n this._low = 0;\n this._high = 0;\n return this;\n } // other == this: 1\n\n\n if (this.eq(other)) {\n this.remainder = new UINT32(0);\n this._low = 1;\n this._high = 0;\n return this;\n } // Shift the divisor left until it is higher than the dividend\n\n\n var _other = other.clone();\n\n var i = -1;\n\n while (!this.lt(_other)) {\n // High bit can overflow the default 16bits\n // Its ok since we right shift after this loop\n // The overflown bit must be kept though\n _other.shiftLeft(1, true);\n\n i++;\n } // Set the remainder\n\n\n this.remainder = this.clone(); // Initialize the current result to 0\n\n this._low = 0;\n this._high = 0;\n\n for (; i >= 0; i--) {\n _other.shiftRight(1); // If shifted divisor is smaller than the dividend\n // then subtract it from the dividend\n\n\n if (!this.remainder.lt(_other)) {\n this.remainder.subtract(_other); // Update the current result\n\n if (i >= 16) {\n this._high |= 1 << i - 16;\n } else {\n this._low |= 1 << i;\n }\n }\n }\n\n return this;\n };\n /**\n * Negate the current _UINT32_\n * @method negate\n * @return ThisExpression\n */\n\n\n UINT32.prototype.negate = function () {\n var v = (~this._low & 0xFFFF) + 1;\n this._low = v & 0xFFFF;\n this._high = ~this._high + (v >>> 16) & 0xFFFF;\n return this;\n };\n /**\n * Equals\n * @method eq\n * @param {Object} other UINT32\n * @return {Boolean}\n */\n\n\n UINT32.prototype.equals = UINT32.prototype.eq = function (other) {\n return this._low == other._low && this._high == other._high;\n };\n /**\n * Greater than (strict)\n * @method gt\n * @param {Object} other UINT32\n * @return {Boolean}\n */\n\n\n UINT32.prototype.greaterThan = UINT32.prototype.gt = function (other) {\n if (this._high > other._high) return true;\n if (this._high < other._high) return false;\n return this._low > other._low;\n };\n /**\n * Less than (strict)\n * @method lt\n * @param {Object} other UINT32\n * @return {Boolean}\n */\n\n\n UINT32.prototype.lessThan = UINT32.prototype.lt = function (other) {\n if (this._high < other._high) return true;\n if (this._high > other._high) return false;\n return this._low < other._low;\n };\n /**\n * Bitwise OR\n * @method or\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.or = function (other) {\n this._low |= other._low;\n this._high |= other._high;\n return this;\n };\n /**\n * Bitwise AND\n * @method and\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.and = function (other) {\n this._low &= other._low;\n this._high &= other._high;\n return this;\n };\n /**\n * Bitwise NOT\n * @method not\n * @return ThisExpression\n */\n\n\n UINT32.prototype.not = function () {\n this._low = ~this._low & 0xFFFF;\n this._high = ~this._high & 0xFFFF;\n return this;\n };\n /**\n * Bitwise XOR\n * @method xor\n * @param {Object} other UINT32\n * @return ThisExpression\n */\n\n\n UINT32.prototype.xor = function (other) {\n this._low ^= other._low;\n this._high ^= other._high;\n return this;\n };\n /**\n * Bitwise shift right\n * @method shiftRight\n * @param {Number} number of bits to shift\n * @return ThisExpression\n */\n\n\n UINT32.prototype.shiftRight = UINT32.prototype.shiftr = function (n) {\n if (n > 16) {\n this._low = this._high >> n - 16;\n this._high = 0;\n } else if (n == 16) {\n this._low = this._high;\n this._high = 0;\n } else {\n this._low = this._low >> n | this._high << 16 - n & 0xFFFF;\n this._high >>= n;\n }\n\n return this;\n };\n /**\n * Bitwise shift left\n * @method shiftLeft\n * @param {Number} number of bits to shift\n * @param {Boolean} allow overflow\n * @return ThisExpression\n */\n\n\n UINT32.prototype.shiftLeft = UINT32.prototype.shiftl = function (n, allowOverflow) {\n if (n > 16) {\n this._high = this._low << n - 16;\n this._low = 0;\n\n if (!allowOverflow) {\n this._high &= 0xFFFF;\n }\n } else if (n == 16) {\n this._high = this._low;\n this._low = 0;\n } else {\n this._high = this._high << n | this._low >> 16 - n;\n this._low = this._low << n & 0xFFFF;\n\n if (!allowOverflow) {\n // Overflow only allowed on the high bits...\n this._high &= 0xFFFF;\n }\n }\n\n return this;\n };\n /**\n * Bitwise rotate left\n * @method rotl\n * @param {Number} number of bits to rotate\n * @return ThisExpression\n */\n\n\n UINT32.prototype.rotateLeft = UINT32.prototype.rotl = function (n) {\n var v = this._high << 16 | this._low;\n v = v << n | v >>> 32 - n;\n this._low = v & 0xFFFF;\n this._high = v >>> 16;\n return this;\n };\n /**\n * Bitwise rotate right\n * @method rotr\n * @param {Number} number of bits to rotate\n * @return ThisExpression\n */\n\n\n UINT32.prototype.rotateRight = UINT32.prototype.rotr = function (n) {\n var v = this._high << 16 | this._low;\n v = v >>> n | v << 32 - n;\n this._low = v & 0xFFFF;\n this._high = v >>> 16;\n return this;\n };\n /**\n * Clone the current _UINT32_\n * @method clone\n * @return {Object} cloned UINT32\n */\n\n\n UINT32.prototype.clone = function () {\n return new UINT32(this._low, this._high);\n };\n\n if (typeof define != 'undefined' && define.amd) {\n // AMD / RequireJS\n define([], function () {\n return UINT32;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n // Node.js\n module.exports = UINT32;\n } else {\n // Browser\n root['UINT32'] = UINT32;\n }\n})(this);","/**\n\tC-like unsigned 64 bits integers in Javascript\n\tCopyright (C) 2013, Pierre Curto\n\tMIT license\n */\n;\n\n(function (root) {\n // Local cache for typical radices\n var radixPowerCache = {\n 16: UINT64(Math.pow(16, 5)),\n 10: UINT64(Math.pow(10, 5)),\n 2: UINT64(Math.pow(2, 5))\n };\n var radixCache = {\n 16: UINT64(16),\n 10: UINT64(10),\n 2: UINT64(2)\n };\n /**\n *\tRepresents an unsigned 64 bits integer\n * @constructor\n * @param {Number} first low bits (8)\n * @param {Number} second low bits (8)\n * @param {Number} first high bits (8)\n * @param {Number} second high bits (8)\n * or\n * @param {Number} low bits (32)\n * @param {Number} high bits (32)\n * or\n * @param {String|Number} integer as a string \t\t | integer as a number\n * @param {Number|Undefined} radix (optional, default=10)\n * @return \n */\n\n function UINT64(a00, a16, a32, a48) {\n if (!(this instanceof UINT64)) return new UINT64(a00, a16, a32, a48);\n this.remainder = null;\n if (typeof a00 == 'string') return fromString.call(this, a00, a16);\n if (typeof a16 == 'undefined') return fromNumber.call(this, a00);\n fromBits.apply(this, arguments);\n }\n /**\n * Set the current _UINT64_ object with its low and high bits\n * @method fromBits\n * @param {Number} first low bits (8)\n * @param {Number} second low bits (8)\n * @param {Number} first high bits (8)\n * @param {Number} second high bits (8)\n * or\n * @param {Number} low bits (32)\n * @param {Number} high bits (32)\n * @return ThisExpression\n */\n\n\n function fromBits(a00, a16, a32, a48) {\n if (typeof a32 == 'undefined') {\n this._a00 = a00 & 0xFFFF;\n this._a16 = a00 >>> 16;\n this._a32 = a16 & 0xFFFF;\n this._a48 = a16 >>> 16;\n return this;\n }\n\n this._a00 = a00 | 0;\n this._a16 = a16 | 0;\n this._a32 = a32 | 0;\n this._a48 = a48 | 0;\n return this;\n }\n\n UINT64.prototype.fromBits = fromBits;\n /**\n * Set the current _UINT64_ object from a number\n * @method fromNumber\n * @param {Number} number\n * @return ThisExpression\n */\n\n function fromNumber(value) {\n this._a00 = value & 0xFFFF;\n this._a16 = value >>> 16;\n this._a32 = 0;\n this._a48 = 0;\n return this;\n }\n\n UINT64.prototype.fromNumber = fromNumber;\n /**\n * Set the current _UINT64_ object from a string\n * @method fromString\n * @param {String} integer as a string\n * @param {Number} radix (optional, default=10)\n * @return ThisExpression\n */\n\n function fromString(s, radix) {\n radix = radix || 10;\n this._a00 = 0;\n this._a16 = 0;\n this._a32 = 0;\n this._a48 = 0;\n /*\n \tIn Javascript, bitwise operators only operate on the first 32 bits \n \tof a number, even though parseInt() encodes numbers with a 53 bits \n \tmantissa.\n \tTherefore UINT64(<Number>) can only work on 32 bits.\n \tThe radix maximum value is 36 (as per ECMA specs) (26 letters + 10 digits)\n \tmaximum input value is m = 32bits as 1 = 2^32 - 1\n \tSo the maximum substring length n is:\n \t36^(n+1) - 1 = 2^32 - 1\n \t36^(n+1) = 2^32\n \t(n+1)ln(36) = 32ln(2)\n \tn = 32ln(2)/ln(36) - 1\n \tn = 5.189644915687692\n \tn = 5\n */\n\n var radixUint = radixPowerCache[radix] || new UINT64(Math.pow(radix, 5));\n\n for (var i = 0, len = s.length; i < len; i += 5) {\n var size = Math.min(5, len - i);\n var value = parseInt(s.slice(i, i + size), radix);\n this.multiply(size < 5 ? new UINT64(Math.pow(radix, size)) : radixUint).add(new UINT64(value));\n }\n\n return this;\n }\n\n UINT64.prototype.fromString = fromString;\n /**\n * Convert this _UINT64_ to a number (last 32 bits are dropped)\n * @method toNumber\n * @return {Number} the converted UINT64\n */\n\n UINT64.prototype.toNumber = function () {\n return this._a16 * 65536 + this._a00;\n };\n /**\n * Convert this _UINT64_ to a string\n * @method toString\n * @param {Number} radix (optional, default=10)\n * @return {String} the converted UINT64\n */\n\n\n UINT64.prototype.toString = function (radix) {\n radix = radix || 10;\n var radixUint = radixCache[radix] || new UINT64(radix);\n if (!this.gt(radixUint)) return this.toNumber().toString(radix);\n var self = this.clone();\n var res = new Array(64);\n\n for (var i = 63; i >= 0; i--) {\n self.div(radixUint);\n res[i] = self.remainder.toNumber().toString(radix);\n if (!self.gt(radixUint)) break;\n }\n\n res[i - 1] = self.toNumber().toString(radix);\n return res.join('');\n };\n /**\n * Add two _UINT64_. The current _UINT64_ stores the result\n * @method add\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.add = function (other) {\n var a00 = this._a00 + other._a00;\n var a16 = a00 >>> 16;\n a16 += this._a16 + other._a16;\n var a32 = a16 >>> 16;\n a32 += this._a32 + other._a32;\n var a48 = a32 >>> 16;\n a48 += this._a48 + other._a48;\n this._a00 = a00 & 0xFFFF;\n this._a16 = a16 & 0xFFFF;\n this._a32 = a32 & 0xFFFF;\n this._a48 = a48 & 0xFFFF;\n return this;\n };\n /**\n * Subtract two _UINT64_. The current _UINT64_ stores the result\n * @method subtract\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.subtract = function (other) {\n return this.add(other.clone().negate());\n };\n /**\n * Multiply two _UINT64_. The current _UINT64_ stores the result\n * @method multiply\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.multiply = function (other) {\n /*\n \ta = a00 + a16 + a32 + a48\n \tb = b00 + b16 + b32 + b48\n \ta*b = (a00 + a16 + a32 + a48)(b00 + b16 + b32 + b48)\n \t\t= a00b00 + a00b16 + a00b32 + a00b48\n \t\t+ a16b00 + a16b16 + a16b32 + a16b48\n \t\t+ a32b00 + a32b16 + a32b32 + a32b48\n \t\t+ a48b00 + a48b16 + a48b32 + a48b48\n \t\ta16b48, a32b32, a48b16, a48b32 and a48b48 overflow the 64 bits\n \tso it comes down to:\n \ta*b\t= a00b00 + a00b16 + a00b32 + a00b48\n \t\t+ a16b00 + a16b16 + a16b32\n \t\t+ a32b00 + a32b16\n \t\t+ a48b00\n \t\t= a00b00\n \t\t+ a00b16 + a16b00\n \t\t+ a00b32 + a16b16 + a32b00\n \t\t+ a00b48 + a16b32 + a32b16 + a48b00\n */\n var a00 = this._a00;\n var a16 = this._a16;\n var a32 = this._a32;\n var a48 = this._a48;\n var b00 = other._a00;\n var b16 = other._a16;\n var b32 = other._a32;\n var b48 = other._a48;\n var c00 = a00 * b00;\n var c16 = c00 >>> 16;\n c16 += a00 * b16;\n var c32 = c16 >>> 16;\n c16 &= 0xFFFF;\n c16 += a16 * b00;\n c32 += c16 >>> 16;\n c32 += a00 * b32;\n var c48 = c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a16 * b16;\n c48 += c32 >>> 16;\n c32 &= 0xFFFF;\n c32 += a32 * b00;\n c48 += c32 >>> 16;\n c48 += a00 * b48;\n c48 &= 0xFFFF;\n c48 += a16 * b32;\n c48 &= 0xFFFF;\n c48 += a32 * b16;\n c48 &= 0xFFFF;\n c48 += a48 * b00;\n this._a00 = c00 & 0xFFFF;\n this._a16 = c16 & 0xFFFF;\n this._a32 = c32 & 0xFFFF;\n this._a48 = c48 & 0xFFFF;\n return this;\n };\n /**\n * Divide two _UINT64_. The current _UINT64_ stores the result.\n * The remainder is made available as the _remainder_ property on\n * the _UINT64_ object. It can be null, meaning there are no remainder.\n * @method div\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.div = function (other) {\n if (other._a16 == 0 && other._a32 == 0 && other._a48 == 0) {\n if (other._a00 == 0) throw Error('division by zero'); // other == 1: this\n\n if (other._a00 == 1) {\n this.remainder = new UINT64(0);\n return this;\n }\n } // other > this: 0\n\n\n if (other.gt(this)) {\n this.remainder = this.clone();\n this._a00 = 0;\n this._a16 = 0;\n this._a32 = 0;\n this._a48 = 0;\n return this;\n } // other == this: 1\n\n\n if (this.eq(other)) {\n this.remainder = new UINT64(0);\n this._a00 = 1;\n this._a16 = 0;\n this._a32 = 0;\n this._a48 = 0;\n return this;\n } // Shift the divisor left until it is higher than the dividend\n\n\n var _other = other.clone();\n\n var i = -1;\n\n while (!this.lt(_other)) {\n // High bit can overflow the default 16bits\n // Its ok since we right shift after this loop\n // The overflown bit must be kept though\n _other.shiftLeft(1, true);\n\n i++;\n } // Set the remainder\n\n\n this.remainder = this.clone(); // Initialize the current result to 0\n\n this._a00 = 0;\n this._a16 = 0;\n this._a32 = 0;\n this._a48 = 0;\n\n for (; i >= 0; i--) {\n _other.shiftRight(1); // If shifted divisor is smaller than the dividend\n // then subtract it from the dividend\n\n\n if (!this.remainder.lt(_other)) {\n this.remainder.subtract(_other); // Update the current result\n\n if (i >= 48) {\n this._a48 |= 1 << i - 48;\n } else if (i >= 32) {\n this._a32 |= 1 << i - 32;\n } else if (i >= 16) {\n this._a16 |= 1 << i - 16;\n } else {\n this._a00 |= 1 << i;\n }\n }\n }\n\n return this;\n };\n /**\n * Negate the current _UINT64_\n * @method negate\n * @return ThisExpression\n */\n\n\n UINT64.prototype.negate = function () {\n var v = (~this._a00 & 0xFFFF) + 1;\n this._a00 = v & 0xFFFF;\n v = (~this._a16 & 0xFFFF) + (v >>> 16);\n this._a16 = v & 0xFFFF;\n v = (~this._a32 & 0xFFFF) + (v >>> 16);\n this._a32 = v & 0xFFFF;\n this._a48 = ~this._a48 + (v >>> 16) & 0xFFFF;\n return this;\n };\n /**\n \t * @method eq\n * @param {Object} other UINT64\n * @return {Boolean}\n */\n\n\n UINT64.prototype.equals = UINT64.prototype.eq = function (other) {\n return this._a48 == other._a48 && this._a00 == other._a00 && this._a32 == other._a32 && this._a16 == other._a16;\n };\n /**\n * Greater than (strict)\n * @method gt\n * @param {Object} other UINT64\n * @return {Boolean}\n */\n\n\n UINT64.prototype.greaterThan = UINT64.prototype.gt = function (other) {\n if (this._a48 > other._a48) return true;\n if (this._a48 < other._a48) return false;\n if (this._a32 > other._a32) return true;\n if (this._a32 < other._a32) return false;\n if (this._a16 > other._a16) return true;\n if (this._a16 < other._a16) return false;\n return this._a00 > other._a00;\n };\n /**\n * Less than (strict)\n * @method lt\n * @param {Object} other UINT64\n * @return {Boolean}\n */\n\n\n UINT64.prototype.lessThan = UINT64.prototype.lt = function (other) {\n if (this._a48 < other._a48) return true;\n if (this._a48 > other._a48) return false;\n if (this._a32 < other._a32) return true;\n if (this._a32 > other._a32) return false;\n if (this._a16 < other._a16) return true;\n if (this._a16 > other._a16) return false;\n return this._a00 < other._a00;\n };\n /**\n * Bitwise OR\n * @method or\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.or = function (other) {\n this._a00 |= other._a00;\n this._a16 |= other._a16;\n this._a32 |= other._a32;\n this._a48 |= other._a48;\n return this;\n };\n /**\n * Bitwise AND\n * @method and\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.and = function (other) {\n this._a00 &= other._a00;\n this._a16 &= other._a16;\n this._a32 &= other._a32;\n this._a48 &= other._a48;\n return this;\n };\n /**\n * Bitwise XOR\n * @method xor\n * @param {Object} other UINT64\n * @return ThisExpression\n */\n\n\n UINT64.prototype.xor = function (other) {\n this._a00 ^= other._a00;\n this._a16 ^= other._a16;\n this._a32 ^= other._a32;\n this._a48 ^= other._a48;\n return this;\n };\n /**\n * Bitwise NOT\n * @method not\n * @return ThisExpression\n */\n\n\n UINT64.prototype.not = function () {\n this._a00 = ~this._a00 & 0xFFFF;\n this._a16 = ~this._a16 & 0xFFFF;\n this._a32 = ~this._a32 & 0xFFFF;\n this._a48 = ~this._a48 & 0xFFFF;\n return this;\n };\n /**\n * Bitwise shift right\n * @method shiftRight\n * @param {Number} number of bits to shift\n * @return ThisExpression\n */\n\n\n UINT64.prototype.shiftRight = UINT64.prototype.shiftr = function (n) {\n n %= 64;\n\n if (n >= 48) {\n this._a00 = this._a48 >> n - 48;\n this._a16 = 0;\n this._a32 = 0;\n this._a48 = 0;\n } else if (n >= 32) {\n n -= 32;\n this._a00 = (this._a32 >> n | this._a48 << 16 - n) & 0xFFFF;\n this._a16 = this._a48 >> n & 0xFFFF;\n this._a32 = 0;\n this._a48 = 0;\n } else if (n >= 16) {\n n -= 16;\n this._a00 = (this._a16 >> n | this._a32 << 16 - n) & 0xFFFF;\n this._a16 = (this._a32 >> n | this._a48 << 16 - n) & 0xFFFF;\n this._a32 = this._a48 >> n & 0xFFFF;\n this._a48 = 0;\n } else {\n this._a00 = (this._a00 >> n | this._a16 << 16 - n) & 0xFFFF;\n this._a16 = (this._a16 >> n | this._a32 << 16 - n) & 0xFFFF;\n this._a32 = (this._a32 >> n | this._a48 << 16 - n) & 0xFFFF;\n this._a48 = this._a48 >> n & 0xFFFF;\n }\n\n return this;\n };\n /**\n * Bitwise shift left\n * @method shiftLeft\n * @param {Number} number of bits to shift\n * @param {Boolean} allow overflow\n * @return ThisExpression\n */\n\n\n UINT64.prototype.shiftLeft = UINT64.prototype.shiftl = function (n, allowOverflow) {\n n %= 64;\n\n if (n >= 48) {\n this._a48 = this._a00 << n - 48;\n this._a32 = 0;\n this._a16 = 0;\n this._a00 = 0;\n } else if (n >= 32) {\n n -= 32;\n this._a48 = this._a16 << n | this._a00 >> 16 - n;\n this._a32 = this._a00 << n & 0xFFFF;\n this._a16 = 0;\n this._a00 = 0;\n } else if (n >= 16) {\n n -= 16;\n this._a48 = this._a32 << n | this._a16 >> 16 - n;\n this._a32 = (this._a16 << n | this._a00 >> 16 - n) & 0xFFFF;\n this._a16 = this._a00 << n & 0xFFFF;\n this._a00 = 0;\n } else {\n this._a48 = this._a48 << n | this._a32 >> 16 - n;\n this._a32 = (this._a32 << n | this._a16 >> 16 - n) & 0xFFFF;\n this._a16 = (this._a16 << n | this._a00 >> 16 - n) & 0xFFFF;\n this._a00 = this._a00 << n & 0xFFFF;\n }\n\n if (!allowOverflow) {\n this._a48 &= 0xFFFF;\n }\n\n return this;\n };\n /**\n * Bitwise rotate left\n * @method rotl\n * @param {Number} number of bits to rotate\n * @return ThisExpression\n */\n\n\n UINT64.prototype.rotateLeft = UINT64.prototype.rotl = function (n) {\n n %= 64;\n if (n == 0) return this;\n\n if (n >= 32) {\n // A.B.C.D\n // B.C.D.A rotl(16)\n // C.D.A.B rotl(32)\n var v = this._a00;\n this._a00 = this._a32;\n this._a32 = v;\n v = this._a48;\n this._a48 = this._a16;\n this._a16 = v;\n if (n == 32) return this;\n n -= 32;\n }\n\n var high = this._a48 << 16 | this._a32;\n var low = this._a16 << 16 | this._a00;\n\n var _high = high << n | low >>> 32 - n;\n\n var _low = low << n | high >>> 32 - n;\n\n this._a00 = _low & 0xFFFF;\n this._a16 = _low >>> 16;\n this._a32 = _high & 0xFFFF;\n this._a48 = _high >>> 16;\n return this;\n };\n /**\n * Bitwise rotate right\n * @method rotr\n * @param {Number} number of bits to rotate\n * @return ThisExpression\n */\n\n\n UINT64.prototype.rotateRight = UINT64.prototype.rotr = function (n) {\n n %= 64;\n if (n == 0) return this;\n\n if (n >= 32) {\n // A.B.C.D\n // D.A.B.C rotr(16)\n // C.D.A.B rotr(32)\n var v = this._a00;\n this._a00 = this._a32;\n this._a32 = v;\n v = this._a48;\n this._a48 = this._a16;\n this._a16 = v;\n if (n == 32) return this;\n n -= 32;\n }\n\n var high = this._a48 << 16 | this._a32;\n var low = this._a16 << 16 | this._a00;\n\n var _high = high >>> n | low << 32 - n;\n\n var _low = low >>> n | high << 32 - n;\n\n this._a00 = _low & 0xFFFF;\n this._a16 = _low >>> 16;\n this._a32 = _high & 0xFFFF;\n this._a48 = _high >>> 16;\n return this;\n };\n /**\n * Clone the current _UINT64_\n * @method clone\n * @return {Object} cloned UINT64\n */\n\n\n UINT64.prototype.clone = function () {\n return new UINT64(this._a00, this._a16, this._a32, this._a48);\n };\n\n if (typeof define != 'undefined' && define.amd) {\n // AMD / RequireJS\n define([], function () {\n return UINT64;\n });\n } else if (typeof module != 'undefined' && module.exports) {\n // Node.js\n module.exports = UINT64;\n } else {\n // Browser\n root['UINT64'] = UINT64;\n }\n})(this);","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","import { raw as RawDataApi, request as Request } from '@commaai/comma-api';\nimport CommaAuth from '@commaai/my-comma-auth';\nimport request from 'simple-get';\n\nconst urlStore = {};\n\nlet initPromise;\nfunction ensureInit() {\n if (!initPromise) {\n initPromise = CommaAuth.init().then((token) => {\n Request.configure(token);\n return Promise.resolve();\n });\n }\n return initPromise;\n}\n\nexport async function getLogPart(logUrl) {\n return new Promise(async (resolve, reject) => {\n request(logUrl, (err, res) => {\n if (err) {\n return reject(err);\n }\n resolve(res);\n });\n });\n}\n","/* eslint-disable no-param-reassign, no-bitwise */\n\nexport function signedShortToByteArray(short) {\n const byteArray = [0, 0];\n const isNegative = short < 0;\n if (isNegative) {\n short += 2 ** (8 * byteArray.length);\n }\n\n for (let index = byteArray.length - 1; index >= 0; --index) {\n const byte = short & 0xff;\n byteArray[index] = byte;\n short >>= 8;\n }\n\n return byteArray;\n}\n\nexport function shortToByteArray(short) {\n const byteArray = [0, 0];\n\n for (let index = byteArray.length - 1; index >= 0; --index) {\n const byte = short & 0xff;\n byteArray[index] = byte;\n short >>= 8;\n }\n\n return byteArray;\n}\n\nexport function longToByteArray(long) {\n const byteArray = [0, 0, 0, 0];\n\n for (let index = byteArray.length - 1; index >= 0; --index) {\n const byte = long & 0xff;\n byteArray[index] = byte;\n long >>= 8;\n }\n\n return byteArray;\n}\n\nexport function signedLongToByteArray(long) {\n const byteArray = [0, 0, 0, 0];\n const isNegative = long < 0;\n if (isNegative) {\n long += 2 ** (8 * byteArray.length);\n }\n\n for (let index = byteArray.length - 1; index >= 0; --index) {\n const byte = long & 0xff;\n byteArray[index] = byte;\n long >>= 8;\n }\n\n return byteArray;\n}\n\nexport function getThermalFlags(state) {\n let flags = 0x00;\n\n if (state.UsbOnline) {\n flags |= 0x01;\n }\n if (state.Started) {\n flags |= 0x02;\n }\n\n return flags;\n}\n\nexport function getHealthFlags(state) {\n let flags = 0x00;\n\n if (state.Started) {\n flags |= 0x01;\n }\n if (state.ControlsAllowed) {\n flags |= 0x02;\n }\n if (state.GasInterceptorDetected) {\n flags |= 0x04;\n }\n if (state.StartedSignalDetected) {\n flags |= 0x08;\n }\n\n return flags;\n}\n\nexport function getFlags(state) {\n let flags = 0x00;\n const arr = [0, 0, 0];\n\n if (state.LeftBlinker) {\n flags |= 0x01;\n }\n if (state.RightBlinker) {\n flags |= 0x02;\n }\n if (state.GenericToggle) {\n flags |= 0x04;\n }\n if (state.DoorOpen) {\n flags |= 0x08;\n }\n if (state.SeatbeltUnlatched) {\n flags |= 0x10;\n }\n if (state.GasPressed) {\n flags |= 0x20;\n }\n if (state.BrakeLights) {\n flags |= 0x40;\n }\n if (state.SteeringPressed) {\n flags |= 0x80;\n }\n\n arr[0] = flags;\n flags = 0x00;\n\n if (state.Standstill) {\n flags |= 0x01;\n }\n if (state.CruiseState.Enabled) {\n flags |= 0x02;\n }\n if (state.CruiseState.Available) {\n flags |= 0x04;\n }\n if (state.CruiseState.Standstill) {\n flags |= 0x08;\n }\n if (state.GearShifter) {\n flags |= state.GearShifter << 4;\n }\n\n arr[1] = flags;\n arr[2] = state.CruiseState.Speed;\n return arr;\n}\n\nexport function getUbloxGnss(state) {\n return signedLongToByteArray(state.RcvTow / 1000)\n .concat(signedShortToByteArray(state.GpsWeek))\n .concat([state.LeapSeconds])\n .concat([state.NumMeas]);\n}\n\nexport function getEgoData(state) {\n return signedShortToByteArray(state.VEgo * 1000)\n .concat(signedShortToByteArray(state.AEgo * 1000))\n .concat(signedShortToByteArray(state.VEgoRaw * 1000))\n .concat(signedShortToByteArray(state.YawRate * 1000));\n}\n\nexport function getCarStateControls(state) {\n return signedLongToByteArray(state.SteeringAngle * 1000)\n .concat(signedShortToByteArray(state.Brake * 1000))\n .concat(signedShortToByteArray(state.Gas * 1000));\n}\n\nexport function getWheelSpeeds(state) {\n return signedShortToByteArray(state.WheelSpeeds.Fl * 100)\n .concat(signedShortToByteArray(state.WheelSpeeds.Fr * 100))\n .concat(signedShortToByteArray(state.WheelSpeeds.Rl * 100))\n .concat(signedShortToByteArray(state.WheelSpeeds.Rr * 100));\n}\n\nexport function getThermalFreeSpace(state) {\n return longToByteArray(state.FreeSpace * 1000000000);\n}\n\nexport function getThermalData(state) {\n return shortToByteArray(state.Mem)\n .concat(shortToByteArray(state.Gpu))\n .concat(shortToByteArray(state.FanSpeed))\n .concat(state.BatteryPercent)\n .concat(getThermalFlags(state));\n}\n\nexport function getThermalCPU(state) {\n return shortToByteArray(state.Cpu0)\n .concat(shortToByteArray(state.Cpu1))\n .concat(shortToByteArray(state.Cpu2))\n .concat(shortToByteArray(state.Cpu3));\n}\n\nexport function getHealth(state) {\n return signedShortToByteArray(state.Voltage)\n .concat(state.Current)\n .concat(getHealthFlags(state));\n}\n","/* eslint-env worker */\n/* eslint-disable no-restricted-globals, no-param-reassign */\nimport LogStream from '@commaai/log_reader';\nimport { timeout } from 'thyming';\nimport { partial } from 'ap';\n\nimport { getLogPart } from '../api/rlog';\nimport DbcUtils from '../utils/dbc';\nimport DBC from '../models/can/dbc';\nimport { addressForName } from '../models/can/logSignals';\nimport {\n getFlags,\n getUbloxGnss,\n getEgoData,\n getCarStateControls,\n getWheelSpeeds,\n getThermalFreeSpace,\n getThermalData,\n getThermalCPU,\n getHealth\n} from './rlog-utils';\n\nconst DEBOUNCE_DELAY = 100;\n\nfunction sendBatch(entry) {\n delete entry.batching;\n const { messages, thumbnails } = entry;\n entry.messages = {};\n entry.thumbnails = [];\n\n let { maxByteStateChangeCount, routeInitTime, firstFrameTime } = entry.options;\n const newMaxByteStateChangeCount = DbcUtils.findMaxByteStateChangeCount(\n messages\n );\n if (newMaxByteStateChangeCount > maxByteStateChangeCount) {\n maxByteStateChangeCount = newMaxByteStateChangeCount;\n }\n\n Object.keys(messages).forEach((key) => {\n // console.log(key);\n messages[key] = DbcUtils.setMessageByteColors(\n messages[key],\n maxByteStateChangeCount\n );\n });\n\n self.postMessage({\n newMessages: messages,\n newThumbnails: thumbnails,\n isFinished: entry.ended,\n maxByteStateChangeCount,\n routeInitTime,\n firstFrameTime,\n });\n\n if (entry.ended) {\n console.log('Sending finished');\n close();\n }\n}\n\nfunction queueBatch(entry) {\n if (!entry.batching) {\n entry.batching = timeout(entry.sendBatch, DEBOUNCE_DELAY);\n }\n}\n\nfunction getPrevMsgEntry(messages, prevMsgEntries, id) {\n if (messages[id].entries.length) {\n return messages[id].entries[messages[id].entries.length - 1];\n }\n return prevMsgEntries[id] || null;\n}\n\nfunction insertEventData(src, part, entry, logTime, getData) {\n const id = `${src}:${part}`;\n const address = addressForName(id);\n\n if (!entry.messages[id]) {\n entry.messages[id] = DbcUtils.createMessageSpec(\n entry.dbc,\n address,\n id,\n src\n );\n entry.messages[id].isLogEvent = true;\n }\n const prevMsgEntry = getPrevMsgEntry(\n entry.messages,\n entry.options.prevMsgEntries,\n id\n );\n\n const msgEntry = {\n time: logTime,\n address,\n data: getData(),\n timeStart: entry.options.routeInitTime\n };\n\n entry.messages[id].entries.push(msgEntry);\n}\n\nfunction insertCanMessage(entry, logTime, msg) {\n const src = msg.Src;\n const address = Number(msg.Address);\n const addressHexStr = address.toString(16);\n const id = `${src}:${addressHexStr}`;\n\n if (!entry.messages[id]) {\n entry.messages[id] = DbcUtils.createMessageSpec(\n entry.dbc,\n address,\n id,\n src\n );\n entry.messages[id].isLogEvent = false;\n }\n const prevMsgEntry = getPrevMsgEntry(\n entry.messages,\n entry.options.prevMsgEntries,\n id\n );\n\n const msgEntry = {\n time: logTime,\n address,\n data: msg.Dat,\n timeStart: entry.options.routeInitTime\n };\n\n entry.messages[id].entries.push(msgEntry);\n\n // console.log(id);\n}\n\nasync function loadData(entry) {\n let url = null;\n\n if (!entry.options.isLegacyShare) {\n url = entry.logUrls[entry.part];\n }\n\n if (!url || url.indexOf('.7z') !== -1) {\n self.postMessage({\n error: 'Invalid or missing log files'\n });\n return;\n }\n const res = await getLogPart(entry.logUrls[entry.part]);\n const logReader = new LogStream(res);\n\n entry.ended = false;\n\n res.on('end', () => {\n console.log('Stream ended');\n setTimeout(() => {\n entry.ended = true;\n queueBatch(entry);\n });\n });\n\n logReader((msg) => {\n if (entry.ended) {\n console.log('You can get msgs after end', msg);\n }\n if ('InitData' in msg) {\n if (entry.options.routeInitTime == null) {\n entry.options.routeInitTime = msg.LogMonoTime / 1e9;\n }\n } else if (entry.part === 0 && 'Frame' in msg) {\n if (entry.options.firstFrameTime == null) {\n entry.options.firstFrameTime = msg.Frame.TimestampEof / 1e9;\n }\n } else if ('Can' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000;\n msg.Can.forEach(partial(insertCanMessage, entry, monoTime));\n } else if ('CarState' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000;\n insertEventData(\n 'CarState',\n 'Ego',\n entry,\n monoTime,\n partial(getEgoData, msg.CarState)\n );\n insertEventData(\n 'CarState',\n 'Controls',\n entry,\n monoTime,\n partial(getCarStateControls, msg.CarState)\n );\n insertEventData(\n 'CarState',\n 'Flags',\n entry,\n monoTime,\n partial(getFlags, msg.CarState)\n );\n insertEventData(\n 'CarState',\n 'WheelSpeeds',\n entry,\n monoTime,\n partial(getWheelSpeeds, msg.CarState)\n );\n } else if ('UbloxGnss' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000;\n if (msg.UbloxGnss.MeasurementReport) {\n insertEventData(\n 'UbloxGnss',\n 'MeasurementReport',\n entry,\n monoTime,\n partial(getUbloxGnss, msg.UbloxGnss.MeasurementReport)\n );\n }\n } else if ('Health' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000;\n insertEventData(\n 'Health',\n 'Data',\n entry,\n monoTime,\n partial(getHealth, msg.Health)\n );\n } else if ('Thermal' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000;\n insertEventData(\n 'Thermal',\n 'CPU',\n entry,\n monoTime,\n partial(getThermalCPU, msg.Thermal)\n );\n insertEventData(\n 'Thermal',\n 'Data',\n entry,\n monoTime,\n partial(getThermalData, msg.Thermal)\n );\n insertEventData(\n 'Thermal',\n 'FreeSpace',\n entry,\n monoTime,\n partial(getThermalFreeSpace, msg.Thermal)\n );\n } else if ('Thumbnail' in msg) {\n const monoTime = msg.LogMonoTime / 1000000000 - entry.options.routeInitTime;\n const data = new Uint8Array(msg.Thumbnail.Thumbnail);\n entry.thumbnails.push({ data, monoTime });\n } else {\n // console.log(Object.keys(msg));\n return;\n }\n queueBatch(entry);\n });\n}\n\nfunction CacheEntry(options) {\n options = options || {};\n this.options = options;\n\n const {\n route, part, dbc, logUrls\n } = options;\n\n this.messages = {};\n this.thumbnails = [];\n this.route = route;\n this.part = part;\n this.dbc = dbc;\n this.logUrls = logUrls;\n this.sendBatch = partial(sendBatch, this);\n this.loadData = partial(loadData, this);\n}\n\nfunction handleMessage(msg) {\n const options = msg.data;\n\n if (options.action === 'terminate') {\n close();\n return;\n }\n\n options.dbc = new DBC(options.dbcText);\n\n const entry = new CacheEntry(options);\n // load in the data!\n entry.loadData();\n}\n\nself.onmessage = handleMessage;\n"],"sourceRoot":""}