@mediapipe/tasks-audio 0.10.4 → 0.10.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"audio_bundle_cjs.js","sources":["../../../../../../../node_modules/google-protobuf/google-protobuf.js","../../../framework/calculator_options_pb.js","../../../../../../../node_modules/google-protobuf/google/protobuf/any_pb.js","../../../framework/mediapipe_options_pb.js","../../../framework/packet_factory_pb.js","../../../framework/packet_generator_pb.js","../../../framework/status_handler_pb.js","../../../framework/stream_handler_pb.js","../../../framework/calculator_pb.js","../../cc/components/processors/proto/classifier_options_pb.js","../../../calculators/tensor/inference_calculator_pb.js","../../cc/core/proto/acceleration_pb.js","../../cc/core/proto/external_file_pb.js","../../cc/core/proto/base_options_pb.js","../../cc/audio/audio_classifier/proto/audio_classifier_graph_options_pb.js","../../../framework/formats/classification_pb.js","../../cc/components/containers/proto/classifications_pb.js","../../../web/graph_runner/platform_utils.js","../../../web/graph_runner/graph_runner.js","../../../web/graph_runner/register_model_resources_graph_service.js","../core/task_runner.js","core/audio_task_runner.js","../components/processors/classifier_options.js","../components/processors/classifier_result.js","audio_classifier/audio_classifier_options.js","audio_classifier/audio_classifier_result.js","audio_classifier/audio_classifier.js","../../cc/components/processors/proto/embedder_options_pb.js","../../cc/audio/audio_embedder/proto/audio_embedder_graph_options_pb.js","../../cc/components/containers/proto/embeddings_pb.js","../components/processors/embedder_options.js","../components/processors/embedder_result.js","audio_embedder/audio_embedder_options.js","audio_embedder/audio_embedder_result.js","audio_embedder/audio_embedder.js","../core/fileset_resolver.js","index.js"],"sourcesContent":["/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.findInternal=function(a,b,c){a instanceof String&&(a=String(a));for(var d=a.length,e=0;e<d;e++){var f=a[e];if(b.call(c,f,e,a))return{i:e,v:f}}return{i:-1,v:void 0}};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.SIMPLE_FROUND_POLYFILL=!1;\n$jscomp.defineProperty=$jscomp.ASSUME_ES5||\"function\"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)};$jscomp.getGlobal=function(a){return\"undefined\"!=typeof window&&window===a?a:\"undefined\"!=typeof global&&null!=global?global:a};$jscomp.global=$jscomp.getGlobal(this);\n$jscomp.polyfill=function(a,b,c,d){if(b){c=$jscomp.global;a=a.split(\".\");for(d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&$jscomp.defineProperty(c,a,{configurable:!0,writable:!0,value:b})}};$jscomp.polyfill(\"Array.prototype.findIndex\",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).i}},\"es6\",\"es3\");\n$jscomp.checkStringArgs=function(a,b,c){if(null==a)throw new TypeError(\"The 'this' value for String.prototype.\"+c+\" must not be null or undefined\");if(b instanceof RegExp)throw new TypeError(\"First argument to String.prototype.\"+c+\" must not be a regular expression\");return a+\"\"};\n$jscomp.polyfill(\"String.prototype.endsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"endsWith\");a+=\"\";void 0===c&&(c=b.length);c=Math.max(0,Math.min(c|0,b.length));for(var e=a.length;0<e&&0<c;)if(b[--c]!=a[--e])return!1;return 0>=e}},\"es6\",\"es3\");$jscomp.polyfill(\"Array.prototype.find\",function(a){return a?a:function(a,c){return $jscomp.findInternal(this,a,c).v}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.startsWith\",function(a){return a?a:function(a,c){var b=$jscomp.checkStringArgs(this,a,\"startsWith\");a+=\"\";var e=b.length,f=a.length;c=Math.max(0,Math.min(c|0,b.length));for(var g=0;g<f&&c<e;)if(b[c++]!=a[g++])return!1;return g>=f}},\"es6\",\"es3\");\n$jscomp.polyfill(\"String.prototype.repeat\",function(a){return a?a:function(a){var b=$jscomp.checkStringArgs(this,null,\"repeat\");if(0>a||1342177279<a)throw new RangeError(\"Invalid count value\");a|=0;for(var d=\"\";a;)if(a&1&&(d+=b),a>>>=1)b+=b;return d}},\"es6\",\"es3\");var COMPILED=!0,goog=goog||{};goog.global=this||self;\ngoog.exportPath_=function(a,b,c){a=a.split(\".\");c=c||goog.global;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c=c[d]&&c[d]!==Object.prototype[d]?c[d]:c[d]={}:c[d]=b};\ngoog.define=function(a,b){if(!COMPILED){var c=goog.global.CLOSURE_UNCOMPILED_DEFINES,d=goog.global.CLOSURE_DEFINES;c&&void 0===c.nodeType&&Object.prototype.hasOwnProperty.call(c,a)?b=c[a]:d&&void 0===d.nodeType&&Object.prototype.hasOwnProperty.call(d,a)&&(b=d[a])}return b};goog.FEATURESET_YEAR=2012;goog.DEBUG=!0;goog.LOCALE=\"en\";goog.TRUSTED_SITE=!0;goog.STRICT_MODE_COMPATIBLE=!1;goog.DISALLOW_TEST_ONLY_CODE=COMPILED&&!goog.DEBUG;goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING=!1;\ngoog.provide=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.provide cannot be used within a module.\");if(!COMPILED&&goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');goog.constructNamespace_(a)};goog.constructNamespace_=function(a,b){if(!COMPILED){delete goog.implicitNamespaces_[a];for(var c=a;(c=c.substring(0,c.lastIndexOf(\".\")))&&!goog.getObjectByName(c);)goog.implicitNamespaces_[c]=!0}goog.exportPath_(a,b)};\ngoog.getScriptNonce=function(a){if(a&&a!=goog.global)return goog.getScriptNonce_(a.document);null===goog.cspNonce_&&(goog.cspNonce_=goog.getScriptNonce_(goog.global.document));return goog.cspNonce_};goog.NONCE_PATTERN_=/^[\\w+/_-]+[=]{0,2}$/;goog.cspNonce_=null;goog.getScriptNonce_=function(a){return(a=a.querySelector&&a.querySelector(\"script[nonce]\"))&&(a=a.nonce||a.getAttribute(\"nonce\"))&&goog.NONCE_PATTERN_.test(a)?a:\"\"};goog.VALID_MODULE_RE_=/^[a-zA-Z_$][a-zA-Z0-9._$]*$/;\ngoog.module=function(a){if(\"string\"!==typeof a||!a||-1==a.search(goog.VALID_MODULE_RE_))throw Error(\"Invalid module identifier\");if(!goog.isInGoogModuleLoader_())throw Error(\"Module \"+a+\" has been loaded incorrectly. Note, modules cannot be loaded as normal scripts. They require some kind of pre-processing step. You're likely trying to load a module via a script tag or as a part of a concatenated bundle without rewriting the module. For more info see: https://github.com/google/closure-library/wiki/goog.module:-an-ES6-module-like-alternative-to-goog.provide.\");\nif(goog.moduleLoaderState_.moduleName)throw Error(\"goog.module may only be called once per module.\");goog.moduleLoaderState_.moduleName=a;if(!COMPILED){if(goog.isProvided_(a))throw Error('Namespace \"'+a+'\" already declared.');delete goog.implicitNamespaces_[a]}};goog.module.get=function(a){return goog.module.getInternal_(a)};\ngoog.module.getInternal_=function(a){if(!COMPILED){if(a in goog.loadedModules_)return goog.loadedModules_[a].exports;if(!goog.implicitNamespaces_[a])return a=goog.getObjectByName(a),null!=a?a:null}return null};goog.ModuleType={ES6:\"es6\",GOOG:\"goog\"};goog.moduleLoaderState_=null;goog.isInModuleLoader_=function(){return goog.isInGoogModuleLoader_()||goog.isInEs6ModuleLoader_()};goog.isInGoogModuleLoader_=function(){return!!goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.GOOG};\ngoog.isInEs6ModuleLoader_=function(){if(goog.moduleLoaderState_&&goog.moduleLoaderState_.type==goog.ModuleType.ES6)return!0;var a=goog.global.$jscomp;return a?\"function\"!=typeof a.getCurrentModulePath?!1:!!a.getCurrentModulePath():!1};\ngoog.module.declareLegacyNamespace=function(){if(!COMPILED&&!goog.isInGoogModuleLoader_())throw Error(\"goog.module.declareLegacyNamespace must be called from within a goog.module\");if(!COMPILED&&!goog.moduleLoaderState_.moduleName)throw Error(\"goog.module must be called prior to goog.module.declareLegacyNamespace.\");goog.moduleLoaderState_.declareLegacyNamespace=!0};\ngoog.declareModuleId=function(a){if(!COMPILED){if(!goog.isInEs6ModuleLoader_())throw Error(\"goog.declareModuleId may only be called from within an ES6 module\");if(goog.moduleLoaderState_&&goog.moduleLoaderState_.moduleName)throw Error(\"goog.declareModuleId may only be called once per module.\");if(a in goog.loadedModules_)throw Error('Module with namespace \"'+a+'\" already exists.');}if(goog.moduleLoaderState_)goog.moduleLoaderState_.moduleName=a;else{var b=goog.global.$jscomp;if(!b||\"function\"!=typeof b.getCurrentModulePath)throw Error('Module with namespace \"'+\na+'\" has been loaded incorrectly.');b=b.require(b.getCurrentModulePath());goog.loadedModules_[a]={exports:b,type:goog.ModuleType.ES6,moduleId:a}}};goog.setTestOnly=function(a){if(goog.DISALLOW_TEST_ONLY_CODE)throw a=a||\"\",Error(\"Importing test-only code into non-debug environment\"+(a?\": \"+a:\".\"));};goog.forwardDeclare=function(a){};COMPILED||(goog.isProvided_=function(a){return a in goog.loadedModules_||!goog.implicitNamespaces_[a]&&null!=goog.getObjectByName(a)},goog.implicitNamespaces_={\"goog.module\":!0});\ngoog.getObjectByName=function(a,b){a=a.split(\".\");b=b||goog.global;for(var c=0;c<a.length;c++)if(b=b[a[c]],null==b)return null;return b};goog.globalize=function(a,b){b=b||goog.global;for(var c in a)b[c]=a[c]};goog.addDependency=function(a,b,c,d){!COMPILED&&goog.DEPENDENCIES_ENABLED&&goog.debugLoader_.addDependency(a,b,c,d)};goog.ENABLE_DEBUG_LOADER=!0;goog.logToConsole_=function(a){goog.global.console&&goog.global.console.error(a)};\ngoog.require=function(a){if(!COMPILED){goog.ENABLE_DEBUG_LOADER&&goog.debugLoader_.requested(a);if(goog.isProvided_(a)){if(goog.isInModuleLoader_())return goog.module.getInternal_(a)}else if(goog.ENABLE_DEBUG_LOADER){var b=goog.moduleLoaderState_;goog.moduleLoaderState_=null;try{goog.debugLoader_.load_(a)}finally{goog.moduleLoaderState_=b}}return null}};goog.requireType=function(a){return{}};goog.basePath=\"\";goog.nullFunction=function(){};\ngoog.abstractMethod=function(){throw Error(\"unimplemented abstract method\");};goog.addSingletonGetter=function(a){a.instance_=void 0;a.getInstance=function(){if(a.instance_)return a.instance_;goog.DEBUG&&(goog.instantiatedSingletons_[goog.instantiatedSingletons_.length]=a);return a.instance_=new a}};goog.instantiatedSingletons_=[];goog.LOAD_MODULE_USING_EVAL=!0;goog.SEAL_MODULE_EXPORTS=goog.DEBUG;goog.loadedModules_={};goog.DEPENDENCIES_ENABLED=!COMPILED&&goog.ENABLE_DEBUG_LOADER;goog.TRANSPILE=\"detect\";\ngoog.ASSUME_ES_MODULES_TRANSPILED=!1;goog.TRANSPILE_TO_LANGUAGE=\"\";goog.TRANSPILER=\"transpile.js\";goog.hasBadLetScoping=null;goog.useSafari10Workaround=function(){if(null==goog.hasBadLetScoping){try{var a=!eval('\"use strict\";let x = 1; function f() { return typeof x; };f() == \"number\";')}catch(b){a=!1}goog.hasBadLetScoping=a}return goog.hasBadLetScoping};goog.workaroundSafari10EvalBug=function(a){return\"(function(){\"+a+\"\\n;})();\\n\"};\ngoog.loadModule=function(a){var b=goog.moduleLoaderState_;try{goog.moduleLoaderState_={moduleName:\"\",declareLegacyNamespace:!1,type:goog.ModuleType.GOOG};if(goog.isFunction(a))var c=a.call(void 0,{});else if(\"string\"===typeof a)goog.useSafari10Workaround()&&(a=goog.workaroundSafari10EvalBug(a)),c=goog.loadModuleFromSource_.call(void 0,a);else throw Error(\"Invalid module definition\");var d=goog.moduleLoaderState_.moduleName;if(\"string\"===typeof d&&d)goog.moduleLoaderState_.declareLegacyNamespace?goog.constructNamespace_(d,\nc):goog.SEAL_MODULE_EXPORTS&&Object.seal&&\"object\"==typeof c&&null!=c&&Object.seal(c),goog.loadedModules_[d]={exports:c,type:goog.ModuleType.GOOG,moduleId:goog.moduleLoaderState_.moduleName};else throw Error('Invalid module name \"'+d+'\"');}finally{goog.moduleLoaderState_=b}};goog.loadModuleFromSource_=function(a){eval(a);return{}};goog.normalizePath_=function(a){a=a.split(\"/\");for(var b=0;b<a.length;)\".\"==a[b]?a.splice(b,1):b&&\"..\"==a[b]&&a[b-1]&&\"..\"!=a[b-1]?a.splice(--b,2):b++;return a.join(\"/\")};\ngoog.loadFileSync_=function(a){if(goog.global.CLOSURE_LOAD_FILE_SYNC)return goog.global.CLOSURE_LOAD_FILE_SYNC(a);try{var b=new goog.global.XMLHttpRequest;b.open(\"get\",a,!1);b.send();return 0==b.status||200==b.status?b.responseText:null}catch(c){return null}};\ngoog.transpile_=function(a,b,c){var d=goog.global.$jscomp;d||(goog.global.$jscomp=d={});var e=d.transpile;if(!e){var f=goog.basePath+goog.TRANSPILER,g=goog.loadFileSync_(f);if(g){(function(){(0,eval)(g+\"\\n//# sourceURL=\"+f)}).call(goog.global);if(goog.global.$gwtExport&&goog.global.$gwtExport.$jscomp&&!goog.global.$gwtExport.$jscomp.transpile)throw Error('The transpiler did not properly export the \"transpile\" method. $gwtExport: '+JSON.stringify(goog.global.$gwtExport));goog.global.$jscomp.transpile=\ngoog.global.$gwtExport.$jscomp.transpile;d=goog.global.$jscomp;e=d.transpile}}e||(e=d.transpile=function(a,b){goog.logToConsole_(b+\" requires transpilation but no transpiler was found.\");return a});return e(a,b,c)};\ngoog.typeOf=function(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b};goog.isArray=function(a){return\"array\"==goog.typeOf(a)};goog.isArrayLike=function(a){var b=goog.typeOf(a);return\"array\"==b||\"object\"==b&&\"number\"==typeof a.length};goog.isDateLike=function(a){return goog.isObject(a)&&\"function\"==typeof a.getFullYear};goog.isFunction=function(a){return\"function\"==goog.typeOf(a)};goog.isObject=function(a){var b=typeof a;return\"object\"==b&&null!=a||\"function\"==b};\ngoog.getUid=function(a){return Object.prototype.hasOwnProperty.call(a,goog.UID_PROPERTY_)&&a[goog.UID_PROPERTY_]||(a[goog.UID_PROPERTY_]=++goog.uidCounter_)};goog.hasUid=function(a){return!!a[goog.UID_PROPERTY_]};goog.removeUid=function(a){null!==a&&\"removeAttribute\"in a&&a.removeAttribute(goog.UID_PROPERTY_);try{delete a[goog.UID_PROPERTY_]}catch(b){}};goog.UID_PROPERTY_=\"closure_uid_\"+(1E9*Math.random()>>>0);goog.uidCounter_=0;goog.getHashCode=goog.getUid;goog.removeHashCode=goog.removeUid;\ngoog.cloneObject=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(\"function\"===typeof a.clone)return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.cloneObject(a[c]);return b}return a};goog.bindNative_=function(a,b,c){return a.call.apply(a.bind,arguments)};\ngoog.bindJs_=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}};goog.bind=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?goog.bind=goog.bindNative_:goog.bind=goog.bindJs_;return goog.bind.apply(null,arguments)};\ngoog.partial=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=c.slice();b.push.apply(b,arguments);return a.apply(this,b)}};goog.mixin=function(a,b){for(var c in b)a[c]=b[c]};goog.now=goog.TRUSTED_SITE&&Date.now||function(){return+new Date};\ngoog.globalEval=function(a){if(goog.global.execScript)goog.global.execScript(a,\"JavaScript\");else if(goog.global.eval){if(null==goog.evalWorksForGlobals_){try{goog.global.eval(\"var _evalTest_ = 1;\")}catch(d){}if(\"undefined\"!=typeof goog.global._evalTest_){try{delete goog.global._evalTest_}catch(d){}goog.evalWorksForGlobals_=!0}else goog.evalWorksForGlobals_=!1}if(goog.evalWorksForGlobals_)goog.global.eval(a);else{var b=goog.global.document,c=b.createElement(\"script\");c.type=\"text/javascript\";c.defer=\n!1;c.appendChild(b.createTextNode(a));b.head.appendChild(c);b.head.removeChild(c)}}else throw Error(\"goog.globalEval not available\");};goog.evalWorksForGlobals_=null;\ngoog.getCssName=function(a,b){if(\".\"==String(a).charAt(0))throw Error('className passed in goog.getCssName must not start with \".\". You passed: '+a);var c=function(a){return goog.cssNameMapping_[a]||a},d=function(a){a=a.split(\"-\");for(var b=[],d=0;d<a.length;d++)b.push(c(a[d]));return b.join(\"-\")};d=goog.cssNameMapping_?\"BY_WHOLE\"==goog.cssNameMappingStyle_?c:d:function(a){return a};a=b?a+\"-\"+d(b):d(a);return goog.global.CLOSURE_CSS_NAME_MAP_FN?goog.global.CLOSURE_CSS_NAME_MAP_FN(a):a};\ngoog.setCssNameMapping=function(a,b){goog.cssNameMapping_=a;goog.cssNameMappingStyle_=b};!COMPILED&&goog.global.CLOSURE_CSS_NAME_MAPPING&&(goog.cssNameMapping_=goog.global.CLOSURE_CSS_NAME_MAPPING);goog.getMsg=function(a,b,c){c&&c.html&&(a=a.replace(/</g,\"&lt;\"));b&&(a=a.replace(/\\{\\$([^}]+)}/g,function(a,c){return null!=b&&c in b?b[c]:a}));return a};goog.getMsgWithFallback=function(a,b){return a};goog.exportSymbol=function(a,b,c){goog.exportPath_(a,b,c)};\ngoog.exportProperty=function(a,b,c){a[b]=c};goog.inherits=function(a,b){function c(){}c.prototype=b.prototype;a.superClass_=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.base=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};goog.scope=function(a){if(goog.isInModuleLoader_())throw Error(\"goog.scope is not supported within a module.\");a.call(goog.global)};COMPILED||(goog.global.COMPILED=COMPILED);\ngoog.defineClass=function(a,b){var c=b.constructor,d=b.statics;c&&c!=Object.prototype.constructor||(c=function(){throw Error(\"cannot instantiate an interface (no constructor defined).\");});c=goog.defineClass.createSealingConstructor_(c,a);a&&goog.inherits(c,a);delete b.constructor;delete b.statics;goog.defineClass.applyProperties_(c.prototype,b);null!=d&&(d instanceof Function?d(c):goog.defineClass.applyProperties_(c,d));return c};goog.defineClass.SEAL_CLASS_INSTANCES=goog.DEBUG;\ngoog.defineClass.createSealingConstructor_=function(a,b){if(!goog.defineClass.SEAL_CLASS_INSTANCES)return a;var c=!goog.defineClass.isUnsealable_(b),d=function(){var b=a.apply(this,arguments)||this;b[goog.UID_PROPERTY_]=b[goog.UID_PROPERTY_];this.constructor===d&&c&&Object.seal instanceof Function&&Object.seal(b);return b};return d};goog.defineClass.isUnsealable_=function(a){return a&&a.prototype&&a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]};goog.defineClass.OBJECT_PROTOTYPE_FIELDS_=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\ngoog.defineClass.applyProperties_=function(a,b){for(var c in b)Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c]);for(var d=0;d<goog.defineClass.OBJECT_PROTOTYPE_FIELDS_.length;d++)c=goog.defineClass.OBJECT_PROTOTYPE_FIELDS_[d],Object.prototype.hasOwnProperty.call(b,c)&&(a[c]=b[c])};goog.tagUnsealableClass=function(a){!COMPILED&&goog.defineClass.SEAL_CLASS_INSTANCES&&(a.prototype[goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_]=!0)};goog.UNSEALABLE_CONSTRUCTOR_PROPERTY_=\"goog_defineClass_legacy_unsealable\";\n!COMPILED&&goog.DEPENDENCIES_ENABLED&&(goog.inHtmlDocument_=function(){var a=goog.global.document;return null!=a&&\"write\"in a},goog.isDocumentLoading_=function(){var a=goog.global.document;return a.attachEvent?\"complete\"!=a.readyState:\"loading\"==a.readyState},goog.findBasePath_=function(){if(void 0!=goog.global.CLOSURE_BASE_PATH&&\"string\"===typeof goog.global.CLOSURE_BASE_PATH)goog.basePath=goog.global.CLOSURE_BASE_PATH;else if(goog.inHtmlDocument_()){var a=goog.global.document,b=a.currentScript;\na=b?[b]:a.getElementsByTagName(\"SCRIPT\");for(b=a.length-1;0<=b;--b){var c=a[b].src,d=c.lastIndexOf(\"?\");d=-1==d?c.length:d;if(\"base.js\"==c.substr(d-7,7)){goog.basePath=c.substr(0,d-7);break}}}},goog.findBasePath_(),goog.Transpiler=function(){this.requiresTranspilation_=null;this.transpilationTarget_=goog.TRANSPILE_TO_LANGUAGE},goog.Transpiler.prototype.createRequiresTranspilation_=function(){function a(a,b){e?d[a]=!0:b()?(c=a,d[a]=!1):e=d[a]=!0}function b(a){try{return!!eval(a)}catch(h){return!1}}\nvar c=\"es3\",d={es3:!1},e=!1,f=goog.global.navigator&&goog.global.navigator.userAgent?goog.global.navigator.userAgent:\"\";a(\"es5\",function(){return b(\"[1,].length==1\")});a(\"es6\",function(){return f.match(/Edge\\/(\\d+)(\\.\\d)*/i)?!1:b('(()=>{\"use strict\";class X{constructor(){if(new.target!=String)throw 1;this.x=42}}let q=Reflect.construct(X,[],String);if(q.x!=42||!(q instanceof String))throw 1;for(const a of[2,3]){if(a==2)continue;function f(z={a}){let a=0;return z.a}{function f(){return 0;}}return f()==3}})()')});\na(\"es7\",function(){return b(\"2 ** 2 == 4\")});a(\"es8\",function(){return b(\"async () => 1, true\")});a(\"es9\",function(){return b(\"({...rest} = {}), true\")});a(\"es_next\",function(){return!1});return{target:c,map:d}},goog.Transpiler.prototype.needsTranspile=function(a,b){if(\"always\"==goog.TRANSPILE)return!0;if(\"never\"==goog.TRANSPILE)return!1;if(!this.requiresTranspilation_){var c=this.createRequiresTranspilation_();this.requiresTranspilation_=c.map;this.transpilationTarget_=this.transpilationTarget_||\nc.target}if(a in this.requiresTranspilation_)return this.requiresTranspilation_[a]?!0:!goog.inHtmlDocument_()||\"es6\"!=b||\"noModule\"in goog.global.document.createElement(\"script\")?!1:!0;throw Error(\"Unknown language mode: \"+a);},goog.Transpiler.prototype.transpile=function(a,b){return goog.transpile_(a,b,this.transpilationTarget_)},goog.transpiler_=new goog.Transpiler,goog.protectScriptTag_=function(a){return a.replace(/<\\/(SCRIPT)/ig,\"\\\\x3c/$1\")},goog.DebugLoader_=function(){this.dependencies_={};\nthis.idToPath_={};this.written_={};this.loadingDeps_=[];this.depsToLoad_=[];this.paused_=!1;this.factory_=new goog.DependencyFactory(goog.transpiler_);this.deferredCallbacks_={};this.deferredQueue_=[]},goog.DebugLoader_.prototype.bootstrap=function(a,b){function c(){d&&(goog.global.setTimeout(d,0),d=null)}var d=b;if(a.length){b=[];for(var e=0;e<a.length;e++){var f=this.getPathFromDeps_(a[e]);if(!f)throw Error(\"Unregonized namespace: \"+a[e]);b.push(this.dependencies_[f])}f=goog.require;var g=0;for(e=\n0;e<a.length;e++)f(a[e]),b[e].onLoad(function(){++g==a.length&&c()})}else c()},goog.DebugLoader_.prototype.loadClosureDeps=function(){this.depsToLoad_.push(this.factory_.createDependency(goog.normalizePath_(goog.basePath+\"deps.js\"),\"deps.js\",[],[],{},!1));this.loadDeps_()},goog.DebugLoader_.prototype.requested=function(a,b){(a=this.getPathFromDeps_(a))&&(b||this.areDepsLoaded_(this.dependencies_[a].requires))&&(b=this.deferredCallbacks_[a])&&(delete this.deferredCallbacks_[a],b())},goog.DebugLoader_.prototype.setDependencyFactory=\nfunction(a){this.factory_=a},goog.DebugLoader_.prototype.load_=function(a){if(this.getPathFromDeps_(a)){var b=this,c=[],d=function(a){var e=b.getPathFromDeps_(a);if(!e)throw Error(\"Bad dependency path or symbol: \"+a);if(!b.written_[e]){b.written_[e]=!0;a=b.dependencies_[e];for(e=0;e<a.requires.length;e++)goog.isProvided_(a.requires[e])||d(a.requires[e]);c.push(a)}};d(a);a=!!this.depsToLoad_.length;this.depsToLoad_=this.depsToLoad_.concat(c);this.paused_||a||this.loadDeps_()}else throw a=\"goog.require could not find: \"+\na,goog.logToConsole_(a),Error(a);},goog.DebugLoader_.prototype.loadDeps_=function(){for(var a=this,b=this.paused_;this.depsToLoad_.length&&!b;)(function(){var c=!1,d=a.depsToLoad_.shift(),e=!1;a.loading_(d);var f={pause:function(){if(c)throw Error(\"Cannot call pause after the call to load.\");b=!0},resume:function(){c?a.resume_():b=!1},loaded:function(){if(e)throw Error(\"Double call to loaded.\");e=!0;a.loaded_(d)},pending:function(){for(var b=[],c=0;c<a.loadingDeps_.length;c++)b.push(a.loadingDeps_[c]);\nreturn b},setModuleState:function(a){goog.moduleLoaderState_={type:a,moduleName:\"\",declareLegacyNamespace:!1}},registerEs6ModuleExports:function(a,b,c){c&&(goog.loadedModules_[c]={exports:b,type:goog.ModuleType.ES6,moduleId:c||\"\"})},registerGoogModuleExports:function(a,b){goog.loadedModules_[a]={exports:b,type:goog.ModuleType.GOOG,moduleId:a}},clearModuleState:function(){goog.moduleLoaderState_=null},defer:function(b){if(c)throw Error(\"Cannot register with defer after the call to load.\");a.defer_(d,\nb)},areDepsLoaded:function(){return a.areDepsLoaded_(d.requires)}};try{d.load(f)}finally{c=!0}})();b&&this.pause_()},goog.DebugLoader_.prototype.pause_=function(){this.paused_=!0},goog.DebugLoader_.prototype.resume_=function(){this.paused_&&(this.paused_=!1,this.loadDeps_())},goog.DebugLoader_.prototype.loading_=function(a){this.loadingDeps_.push(a)},goog.DebugLoader_.prototype.loaded_=function(a){for(var b=0;b<this.loadingDeps_.length;b++)if(this.loadingDeps_[b]==a){this.loadingDeps_.splice(b,1);\nbreak}for(b=0;b<this.deferredQueue_.length;b++)if(this.deferredQueue_[b]==a.path){this.deferredQueue_.splice(b,1);break}if(this.loadingDeps_.length==this.deferredQueue_.length&&!this.depsToLoad_.length)for(;this.deferredQueue_.length;)this.requested(this.deferredQueue_.shift(),!0);a.loaded()},goog.DebugLoader_.prototype.areDepsLoaded_=function(a){for(var b=0;b<a.length;b++){var c=this.getPathFromDeps_(a[b]);if(!c||!(c in this.deferredCallbacks_||goog.isProvided_(a[b])))return!1}return!0},goog.DebugLoader_.prototype.getPathFromDeps_=\nfunction(a){return a in this.idToPath_?this.idToPath_[a]:a in this.dependencies_?a:null},goog.DebugLoader_.prototype.defer_=function(a,b){this.deferredCallbacks_[a.path]=b;this.deferredQueue_.push(a.path)},goog.LoadController=function(){},goog.LoadController.prototype.pause=function(){},goog.LoadController.prototype.resume=function(){},goog.LoadController.prototype.loaded=function(){},goog.LoadController.prototype.pending=function(){},goog.LoadController.prototype.registerEs6ModuleExports=function(a,\nb,c){},goog.LoadController.prototype.setModuleState=function(a){},goog.LoadController.prototype.clearModuleState=function(){},goog.LoadController.prototype.defer=function(a){},goog.LoadController.prototype.areDepsLoaded=function(){},goog.Dependency=function(a,b,c,d,e){this.path=a;this.relativePath=b;this.provides=c;this.requires=d;this.loadFlags=e;this.loaded_=!1;this.loadCallbacks_=[]},goog.Dependency.prototype.getPathName=function(){var a=this.path,b=a.indexOf(\"://\");0<=b&&(a=a.substring(b+3),b=\na.indexOf(\"/\"),0<=b&&(a=a.substring(b+1)));return a},goog.Dependency.prototype.onLoad=function(a){this.loaded_?a():this.loadCallbacks_.push(a)},goog.Dependency.prototype.loaded=function(){this.loaded_=!0;var a=this.loadCallbacks_;this.loadCallbacks_=[];for(var b=0;b<a.length;b++)a[b]()},goog.Dependency.defer_=!1,goog.Dependency.callbackMap_={},goog.Dependency.registerCallback_=function(a){var b=Math.random().toString(32);goog.Dependency.callbackMap_[b]=a;return b},goog.Dependency.unregisterCallback_=\nfunction(a){delete goog.Dependency.callbackMap_[a]},goog.Dependency.callback_=function(a,b){if(a in goog.Dependency.callbackMap_){for(var c=goog.Dependency.callbackMap_[a],d=[],e=1;e<arguments.length;e++)d.push(arguments[e]);c.apply(void 0,d)}else throw Error(\"Callback key \"+a+\" does not exist (was base.js loaded more than once?).\");},goog.Dependency.prototype.load=function(a){if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var b=\ngoog.global.document;if(\"complete\"==b.readyState&&!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING){if(/\\bdeps.js$/.test(this.path)){a.loaded();return}throw Error('Cannot write \"'+this.path+'\" after document load');}if(!goog.ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING&&goog.isDocumentLoading_()){var c=goog.Dependency.registerCallback_(function(b){goog.DebugLoader_.IS_OLD_IE_&&\"complete\"!=b.readyState||(goog.Dependency.unregisterCallback_(c),a.loaded())}),d=!goog.DebugLoader_.IS_OLD_IE_&&goog.getScriptNonce()?\n' nonce=\"'+goog.getScriptNonce()+'\"':\"\";d='<script src=\"'+this.path+'\" '+(goog.DebugLoader_.IS_OLD_IE_?\"onreadystatechange\":\"onload\")+\"=\\\"goog.Dependency.callback_('\"+c+'\\', this)\" type=\"text/javascript\" '+(goog.Dependency.defer_?\"defer\":\"\")+d+\">\\x3c/script>\";b.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(d):d)}else{var e=b.createElement(\"script\");e.defer=goog.Dependency.defer_;e.async=!1;e.type=\"text/javascript\";(d=goog.getScriptNonce())&&e.setAttribute(\"nonce\",d);goog.DebugLoader_.IS_OLD_IE_?\n(a.pause(),e.onreadystatechange=function(){if(\"loaded\"==e.readyState||\"complete\"==e.readyState)a.loaded(),a.resume()}):e.onload=function(){e.onload=null;a.loaded()};e.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(this.path):this.path;b.head.appendChild(e)}}else goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"),\"deps.js\"==this.relativePath?(goog.logToConsole_(\"Consider setting CLOSURE_IMPORT_SCRIPT before loading base.js, or setting CLOSURE_NO_DEPS to true.\"),\na.loaded()):a.pause()},goog.Es6ModuleDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e)},goog.inherits(goog.Es6ModuleDependency,goog.Dependency),goog.Es6ModuleDependency.prototype.load=function(a){function b(a,b){a=b?'<script type=\"module\" crossorigin>'+b+\"\\x3c/script>\":'<script type=\"module\" crossorigin src=\"'+a+'\">\\x3c/script>';d.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(a):a)}function c(a,b){var c=d.createElement(\"script\");c.defer=!0;c.async=!1;c.type=\n\"module\";c.setAttribute(\"crossorigin\",!0);var e=goog.getScriptNonce();e&&c.setAttribute(\"nonce\",e);b?c.textContent=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScript(b):b:c.src=goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createScriptURL(a):a;d.head.appendChild(c)}if(goog.global.CLOSURE_IMPORT_SCRIPT)goog.global.CLOSURE_IMPORT_SCRIPT(this.path)?a.loaded():a.pause();else if(goog.inHtmlDocument_()){var d=goog.global.document,e=this;if(goog.isDocumentLoading_()){var f=b;goog.Dependency.defer_=\n!0}else f=c;var g=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(g);a.setModuleState(goog.ModuleType.ES6)});f(void 0,'goog.Dependency.callback_(\"'+g+'\")');f(this.path,void 0);var h=goog.Dependency.registerCallback_(function(b){goog.Dependency.unregisterCallback_(h);a.registerEs6ModuleExports(e.path,b,goog.moduleLoaderState_.moduleName)});f(void 0,'import * as m from \"'+this.path+'\"; goog.Dependency.callback_(\"'+h+'\", m)');var k=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(k);\na.clearModuleState();a.loaded()});f(void 0,'goog.Dependency.callback_(\"'+k+'\")')}else goog.logToConsole_(\"Cannot use default debug loader outside of HTML documents.\"),a.pause()},goog.TransformedDependency=function(a,b,c,d,e){goog.Dependency.call(this,a,b,c,d,e);this.contents_=null;this.lazyFetch_=!goog.inHtmlDocument_()||!(\"noModule\"in goog.global.document.createElement(\"script\"))},goog.inherits(goog.TransformedDependency,goog.Dependency),goog.TransformedDependency.prototype.load=function(a){function b(){e.contents_=\ngoog.loadFileSync_(e.path);e.contents_&&(e.contents_=e.transform(e.contents_),e.contents_&&(e.contents_+=\"\\n//# sourceURL=\"+e.path))}function c(){e.lazyFetch_&&b();if(e.contents_){f&&a.setModuleState(goog.ModuleType.ES6);try{var c=e.contents_;e.contents_=null;goog.globalEval(c);if(f)var d=goog.moduleLoaderState_.moduleName}finally{f&&a.clearModuleState()}f&&goog.global.$jscomp.require.ensure([e.getPathName()],function(){a.registerEs6ModuleExports(e.path,goog.global.$jscomp.require(e.getPathName()),\nd)});a.loaded()}}function d(){var a=goog.global.document,b=goog.Dependency.registerCallback_(function(){goog.Dependency.unregisterCallback_(b);c()}),d='<script type=\"text/javascript\">'+goog.protectScriptTag_('goog.Dependency.callback_(\"'+b+'\");')+\"\\x3c/script>\";a.write(goog.TRUSTED_TYPES_POLICY_?goog.TRUSTED_TYPES_POLICY_.createHTML(d):d)}var e=this;if(goog.global.CLOSURE_IMPORT_SCRIPT)b(),this.contents_&&goog.global.CLOSURE_IMPORT_SCRIPT(\"\",this.contents_)?(this.contents_=null,a.loaded()):a.pause();\nelse{var f=this.loadFlags.module==goog.ModuleType.ES6;this.lazyFetch_||b();var g=1<a.pending().length,h=g&&goog.DebugLoader_.IS_OLD_IE_;g=goog.Dependency.defer_&&(g||goog.isDocumentLoading_());if(h||g)a.defer(function(){c()});else{var k=goog.global.document;h=goog.inHtmlDocument_()&&\"ActiveXObject\"in goog.global;if(f&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()&&!h){goog.Dependency.defer_=!0;a.pause();var l=k.onreadystatechange;k.onreadystatechange=function(){\"interactive\"==k.readyState&&(k.onreadystatechange=\nl,c(),a.resume());goog.isFunction(l)&&l.apply(void 0,arguments)}}else!goog.DebugLoader_.IS_OLD_IE_&&goog.inHtmlDocument_()&&goog.isDocumentLoading_()?d():c()}}},goog.TransformedDependency.prototype.transform=function(a){},goog.TranspiledDependency=function(a,b,c,d,e,f){goog.TransformedDependency.call(this,a,b,c,d,e);this.transpiler=f},goog.inherits(goog.TranspiledDependency,goog.TransformedDependency),goog.TranspiledDependency.prototype.transform=function(a){return this.transpiler.transpile(a,this.getPathName())},\ngoog.PreTranspiledEs6ModuleDependency=function(a,b,c,d,e){goog.TransformedDependency.call(this,a,b,c,d,e)},goog.inherits(goog.PreTranspiledEs6ModuleDependency,goog.TransformedDependency),goog.PreTranspiledEs6ModuleDependency.prototype.transform=function(a){return a},goog.GoogModuleDependency=function(a,b,c,d,e,f,g){goog.TransformedDependency.call(this,a,b,c,d,e);this.needsTranspile_=f;this.transpiler_=g},goog.inherits(goog.GoogModuleDependency,goog.TransformedDependency),goog.GoogModuleDependency.prototype.transform=\nfunction(a){this.needsTranspile_&&(a=this.transpiler_.transpile(a,this.getPathName()));return goog.LOAD_MODULE_USING_EVAL&&void 0!==goog.global.JSON?\"goog.loadModule(\"+goog.global.JSON.stringify(a+\"\\n//# sourceURL=\"+this.path+\"\\n\")+\");\":'goog.loadModule(function(exports) {\"use strict\";'+a+\"\\n;return exports});\\n//# sourceURL=\"+this.path+\"\\n\"},goog.DebugLoader_.IS_OLD_IE_=!(goog.global.atob||!goog.global.document||!goog.global.document.all),goog.DebugLoader_.prototype.addDependency=function(a,b,c,\nd){b=b||[];a=a.replace(/\\\\/g,\"/\");var e=goog.normalizePath_(goog.basePath+a);d&&\"boolean\"!==typeof d||(d=d?{module:goog.ModuleType.GOOG}:{});c=this.factory_.createDependency(e,a,b,c,d,goog.transpiler_.needsTranspile(d.lang||\"es3\",d.module));this.dependencies_[e]=c;for(c=0;c<b.length;c++)this.idToPath_[b[c]]=e;this.idToPath_[a]=e},goog.DependencyFactory=function(a){this.transpiler=a},goog.DependencyFactory.prototype.createDependency=function(a,b,c,d,e,f){return e.module==goog.ModuleType.GOOG?new goog.GoogModuleDependency(a,\nb,c,d,e,f,this.transpiler):f?new goog.TranspiledDependency(a,b,c,d,e,this.transpiler):e.module==goog.ModuleType.ES6?\"never\"==goog.TRANSPILE&&goog.ASSUME_ES_MODULES_TRANSPILED?new goog.PreTranspiledEs6ModuleDependency(a,b,c,d,e):new goog.Es6ModuleDependency(a,b,c,d,e):new goog.Dependency(a,b,c,d,e)},goog.debugLoader_=new goog.DebugLoader_,goog.loadClosureDeps=function(){goog.debugLoader_.loadClosureDeps()},goog.setDependencyFactory=function(a){goog.debugLoader_.setDependencyFactory(a)},goog.global.CLOSURE_NO_DEPS||\ngoog.debugLoader_.loadClosureDeps(),goog.bootstrap=function(a,b){goog.debugLoader_.bootstrap(a,b)});goog.TRUSTED_TYPES_POLICY_NAME=\"\";goog.identity_=function(a){return a};goog.createTrustedTypesPolicy=function(a){var b=null,c=goog.global.trustedTypes||goog.global.TrustedTypes;if(!c||!c.createPolicy)return b;try{b=c.createPolicy(a,{createHTML:goog.identity_,createScript:goog.identity_,createScriptURL:goog.identity_,createURL:goog.identity_})}catch(d){goog.logToConsole_(d.message)}return b};\ngoog.TRUSTED_TYPES_POLICY_=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+\"#base\"):null;goog.object={};goog.object.is=function(a,b){return a===b?0!==a||1/a===1/b:a!==a&&b!==b};goog.object.forEach=function(a,b,c){for(var d in a)b.call(c,a[d],d,a)};goog.object.filter=function(a,b,c){var d={},e;for(e in a)b.call(c,a[e],e,a)&&(d[e]=a[e]);return d};goog.object.map=function(a,b,c){var d={},e;for(e in a)d[e]=b.call(c,a[e],e,a);return d};goog.object.some=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return!0;return!1};\ngoog.object.every=function(a,b,c){for(var d in a)if(!b.call(c,a[d],d,a))return!1;return!0};goog.object.getCount=function(a){var b=0,c;for(c in a)b++;return b};goog.object.getAnyKey=function(a){for(var b in a)return b};goog.object.getAnyValue=function(a){for(var b in a)return a[b]};goog.object.contains=function(a,b){return goog.object.containsValue(a,b)};goog.object.getValues=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b};\ngoog.object.getKeys=function(a){var b=[],c=0,d;for(d in a)b[c++]=d;return b};goog.object.getValueByKeys=function(a,b){var c=goog.isArrayLike(b),d=c?b:arguments;for(c=c?0:1;c<d.length;c++){if(null==a)return;a=a[d[c]]}return a};goog.object.containsKey=function(a,b){return null!==a&&b in a};goog.object.containsValue=function(a,b){for(var c in a)if(a[c]==b)return!0;return!1};goog.object.findKey=function(a,b,c){for(var d in a)if(b.call(c,a[d],d,a))return d};\ngoog.object.findValue=function(a,b,c){return(b=goog.object.findKey(a,b,c))&&a[b]};goog.object.isEmpty=function(a){for(var b in a)return!1;return!0};goog.object.clear=function(a){for(var b in a)delete a[b]};goog.object.remove=function(a,b){var c;(c=b in a)&&delete a[b];return c};goog.object.add=function(a,b,c){if(null!==a&&b in a)throw Error('The object already contains the key \"'+b+'\"');goog.object.set(a,b,c)};goog.object.get=function(a,b,c){return null!==a&&b in a?a[b]:c};\ngoog.object.set=function(a,b,c){a[b]=c};goog.object.setIfUndefined=function(a,b,c){return b in a?a[b]:a[b]=c};goog.object.setWithReturnValueIfNotSet=function(a,b,c){if(b in a)return a[b];c=c();return a[b]=c};goog.object.equals=function(a,b){for(var c in a)if(!(c in b)||a[c]!==b[c])return!1;for(var d in b)if(!(d in a))return!1;return!0};goog.object.clone=function(a){var b={},c;for(c in a)b[c]=a[c];return b};\ngoog.object.unsafeClone=function(a){var b=goog.typeOf(a);if(\"object\"==b||\"array\"==b){if(goog.isFunction(a.clone))return a.clone();b=\"array\"==b?[]:{};for(var c in a)b[c]=goog.object.unsafeClone(a[c]);return b}return a};goog.object.transpose=function(a){var b={},c;for(c in a)b[a[c]]=c;return b};goog.object.PROTOTYPE_FIELDS_=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");\ngoog.object.extend=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<goog.object.PROTOTYPE_FIELDS_.length;f++)c=goog.object.PROTOTYPE_FIELDS_[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};\ngoog.object.create=function(a){var b=arguments.length;if(1==b&&Array.isArray(arguments[0]))return goog.object.create.apply(null,arguments[0]);if(b%2)throw Error(\"Uneven number of arguments\");for(var c={},d=0;d<b;d+=2)c[arguments[d]]=arguments[d+1];return c};goog.object.createSet=function(a){var b=arguments.length;if(1==b&&Array.isArray(arguments[0]))return goog.object.createSet.apply(null,arguments[0]);for(var c={},d=0;d<b;d++)c[arguments[d]]=!0;return c};\ngoog.object.createImmutableView=function(a){var b=a;Object.isFrozen&&!Object.isFrozen(a)&&(b=Object.create(a),Object.freeze(b));return b};goog.object.isImmutableView=function(a){return!!Object.isFrozen&&Object.isFrozen(a)};\ngoog.object.getAllPropertyNames=function(a,b,c){if(!a)return[];if(!Object.getOwnPropertyNames||!Object.getPrototypeOf)return goog.object.getKeys(a);for(var d={};a&&(a!==Object.prototype||b)&&(a!==Function.prototype||c);){for(var e=Object.getOwnPropertyNames(a),f=0;f<e.length;f++)d[e[f]]=!0;a=Object.getPrototypeOf(a)}return goog.object.getKeys(d)};goog.object.getSuperClass=function(a){return(a=Object.getPrototypeOf(a.prototype))&&a.constructor};var jspb={asserts:{}};jspb.asserts.doAssertFailure=function(a,b,c,d){var e=\"Assertion failed\";if(c){e+=\": \"+c;var f=d}else a&&(e+=\": \"+a,f=b);throw Error(\"\"+e,f||[]);};jspb.asserts.assert=function(a,b,c){for(var d=[],e=2;e<arguments.length;++e)d[e-2]=arguments[e];a||jspb.asserts.doAssertFailure(\"\",null,b,d);return a};\njspb.asserts.assertString=function(a,b,c){for(var d=[],e=2;e<arguments.length;++e)d[e-2]=arguments[e];\"string\"!==typeof a&&jspb.asserts.doAssertFailure(\"Expected string but got %s: %s.\",[goog.typeOf(a),a],b,d);return a};jspb.asserts.assertArray=function(a,b,c){for(var d=[],e=2;e<arguments.length;++e)d[e-2]=arguments[e];Array.isArray(a)||jspb.asserts.doAssertFailure(\"Expected array but got %s: %s.\",[goog.typeOf(a),a],b,d);return a};\njspb.asserts.fail=function(a,b){for(var c=[],d=1;d<arguments.length;++d)c[d-1]=arguments[d];throw Error(\"Failure\"+(a?\": \"+a:\"\"),c);};jspb.asserts.assertInstanceof=function(a,b,c,d){for(var e=[],f=3;f<arguments.length;++f)e[f-3]=arguments[f];a instanceof b||jspb.asserts.doAssertFailure(\"Expected instanceof %s but got %s.\",[jspb.asserts.getType(b),jspb.asserts.getType(a)],c,e);return a};\njspb.asserts.getType=function(a){return a instanceof Function?a.displayName||a.name||\"unknown type name\":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?\"null\":typeof a};jspb.BinaryConstants={};jspb.ConstBinaryMessage=function(){};jspb.BinaryMessage=function(){};jspb.BinaryConstants.FieldType={INVALID:-1,DOUBLE:1,FLOAT:2,INT64:3,UINT64:4,INT32:5,FIXED64:6,FIXED32:7,BOOL:8,STRING:9,GROUP:10,MESSAGE:11,BYTES:12,UINT32:13,ENUM:14,SFIXED32:15,SFIXED64:16,SINT32:17,SINT64:18,FHASH64:30,VHASH64:31};jspb.BinaryConstants.WireType={INVALID:-1,VARINT:0,FIXED64:1,DELIMITED:2,START_GROUP:3,END_GROUP:4,FIXED32:5};\njspb.BinaryConstants.FieldTypeToWireType=function(a){var b=jspb.BinaryConstants.FieldType,c=jspb.BinaryConstants.WireType;switch(a){case b.INT32:case b.INT64:case b.UINT32:case b.UINT64:case b.SINT32:case b.SINT64:case b.BOOL:case b.ENUM:case b.VHASH64:return c.VARINT;case b.DOUBLE:case b.FIXED64:case b.SFIXED64:case b.FHASH64:return c.FIXED64;case b.STRING:case b.MESSAGE:case b.BYTES:return c.DELIMITED;case b.FLOAT:case b.FIXED32:case b.SFIXED32:return c.FIXED32;default:return c.INVALID}};\njspb.BinaryConstants.INVALID_FIELD_NUMBER=-1;jspb.BinaryConstants.FLOAT32_EPS=1.401298464324817E-45;jspb.BinaryConstants.FLOAT32_MIN=1.1754943508222875E-38;jspb.BinaryConstants.FLOAT32_MAX=3.4028234663852886E38;jspb.BinaryConstants.FLOAT64_EPS=4.9E-324;jspb.BinaryConstants.FLOAT64_MIN=2.2250738585072014E-308;jspb.BinaryConstants.FLOAT64_MAX=1.7976931348623157E308;jspb.BinaryConstants.TWO_TO_20=1048576;jspb.BinaryConstants.TWO_TO_23=8388608;jspb.BinaryConstants.TWO_TO_31=2147483648;\njspb.BinaryConstants.TWO_TO_32=4294967296;jspb.BinaryConstants.TWO_TO_52=4503599627370496;jspb.BinaryConstants.TWO_TO_63=0x7fffffffffffffff;jspb.BinaryConstants.TWO_TO_64=1.8446744073709552E19;jspb.BinaryConstants.ZERO_HASH=\"\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\";goog.debug={};goog.debug.Error=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,goog.debug.Error);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a));this.reportErrorToServer=!0};goog.inherits(goog.debug.Error,Error);goog.debug.Error.prototype.name=\"CustomError\";goog.dom={};goog.dom.NodeType={ELEMENT:1,ATTRIBUTE:2,TEXT:3,CDATA_SECTION:4,ENTITY_REFERENCE:5,ENTITY:6,PROCESSING_INSTRUCTION:7,COMMENT:8,DOCUMENT:9,DOCUMENT_TYPE:10,DOCUMENT_FRAGMENT:11,NOTATION:12};goog.asserts={};goog.asserts.ENABLE_ASSERTS=goog.DEBUG;goog.asserts.AssertionError=function(a,b){goog.debug.Error.call(this,goog.asserts.subs_(a,b));this.messagePattern=a};goog.inherits(goog.asserts.AssertionError,goog.debug.Error);goog.asserts.AssertionError.prototype.name=\"AssertionError\";goog.asserts.DEFAULT_ERROR_HANDLER=function(a){throw a;};goog.asserts.errorHandler_=goog.asserts.DEFAULT_ERROR_HANDLER;\ngoog.asserts.subs_=function(a,b){a=a.split(\"%s\");for(var c=\"\",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:\"%s\");return c+a[d]};goog.asserts.doAssertFailure_=function(a,b,c,d){var e=\"Assertion failed\";if(c){e+=\": \"+c;var f=d}else a&&(e+=\": \"+a,f=b);a=new goog.asserts.AssertionError(\"\"+e,f||[]);goog.asserts.errorHandler_(a)};goog.asserts.setErrorHandler=function(a){goog.asserts.ENABLE_ASSERTS&&(goog.asserts.errorHandler_=a)};\ngoog.asserts.assert=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!a&&goog.asserts.doAssertFailure_(\"\",null,b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertExists=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&null==a&&goog.asserts.doAssertFailure_(\"Expected to exist: %s.\",[a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.fail=function(a,b){goog.asserts.ENABLE_ASSERTS&&goog.asserts.errorHandler_(new goog.asserts.AssertionError(\"Failure\"+(a?\": \"+a:\"\"),Array.prototype.slice.call(arguments,1)))};goog.asserts.assertNumber=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&\"number\"!==typeof a&&goog.asserts.doAssertFailure_(\"Expected number but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertString=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&\"string\"!==typeof a&&goog.asserts.doAssertFailure_(\"Expected string but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertFunction=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isFunction(a)&&goog.asserts.doAssertFailure_(\"Expected function but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertObject=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!goog.isObject(a)&&goog.asserts.doAssertFailure_(\"Expected object but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertArray=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&!Array.isArray(a)&&goog.asserts.doAssertFailure_(\"Expected array but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertBoolean=function(a,b,c){goog.asserts.ENABLE_ASSERTS&&\"boolean\"!==typeof a&&goog.asserts.doAssertFailure_(\"Expected boolean but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};goog.asserts.assertElement=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||goog.isObject(a)&&a.nodeType==goog.dom.NodeType.ELEMENT||goog.asserts.doAssertFailure_(\"Expected Element but got %s: %s.\",[goog.typeOf(a),a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertInstanceof=function(a,b,c,d){!goog.asserts.ENABLE_ASSERTS||a instanceof b||goog.asserts.doAssertFailure_(\"Expected instanceof %s but got %s.\",[goog.asserts.getType_(b),goog.asserts.getType_(a)],c,Array.prototype.slice.call(arguments,3));return a};goog.asserts.assertFinite=function(a,b,c){!goog.asserts.ENABLE_ASSERTS||\"number\"==typeof a&&isFinite(a)||goog.asserts.doAssertFailure_(\"Expected %s to be a finite number but it is not.\",[a],b,Array.prototype.slice.call(arguments,2));return a};\ngoog.asserts.assertObjectPrototypeIsIntact=function(){for(var a in Object.prototype)goog.asserts.fail(a+\" should not be enumerable in Object.prototype.\")};goog.asserts.getType_=function(a){return a instanceof Function?a.displayName||a.name||\"unknown type name\":a instanceof Object?a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a):null===a?\"null\":typeof a};goog.array={};goog.NATIVE_ARRAY_PROTOTYPES=goog.TRUSTED_SITE;goog.array.ASSUME_NATIVE_FUNCTIONS=2012<goog.FEATURESET_YEAR;goog.array.peek=function(a){return a[a.length-1]};goog.array.last=goog.array.peek;\ngoog.array.indexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.indexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.indexOf.call(a,b,c)}:function(a,b,c){c=null==c?0:0>c?Math.max(0,a.length+c):c;if(\"string\"===typeof a)return\"string\"!==typeof b||1!=b.length?-1:a.indexOf(b,c);for(;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.lastIndexOf=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.lastIndexOf)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.lastIndexOf.call(a,b,null==c?a.length-1:c)}:function(a,b,c){c=null==c?a.length-1:c;0>c&&(c=Math.max(0,a.length+c));if(\"string\"===typeof a)return\"string\"!==typeof b||1!=b.length?-1:a.lastIndexOf(b,c);for(;0<=c;c--)if(c in a&&a[c]===b)return c;return-1};\ngoog.array.forEach=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.forEach)?function(a,b,c){goog.asserts.assert(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)};goog.array.forEachRight=function(a,b,c){var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a;for(--d;0<=d;--d)d in e&&b.call(c,e[d],d,a)};\ngoog.array.filter=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.filter)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.filter.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=[],f=0,g=\"string\"===typeof a?a.split(\"\"):a,h=0;h<d;h++)if(h in g){var k=g[h];b.call(c,k,h,a)&&(e[f++]=k)}return e};\ngoog.array.map=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.map)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.map.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=Array(d),f=\"string\"===typeof a?a.split(\"\"):a,g=0;g<d;g++)g in f&&(e[g]=b.call(c,f[g],g,a));return e};\ngoog.array.reduce=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduce)?function(a,b,c,d){goog.asserts.assert(null!=a.length);d&&(b=goog.bind(b,d));return Array.prototype.reduce.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEach(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.reduceRight=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.reduceRight)?function(a,b,c,d){goog.asserts.assert(null!=a.length);goog.asserts.assert(null!=b);d&&(b=goog.bind(b,d));return Array.prototype.reduceRight.call(a,b,c)}:function(a,b,c,d){var e=c;goog.array.forEachRight(a,function(c,g){e=b.call(d,e,c,g,a)});return e};\ngoog.array.some=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.some)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.some.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return!0;return!1};\ngoog.array.every=goog.NATIVE_ARRAY_PROTOTYPES&&(goog.array.ASSUME_NATIVE_FUNCTIONS||Array.prototype.every)?function(a,b,c){goog.asserts.assert(null!=a.length);return Array.prototype.every.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&!b.call(c,e[f],f,a))return!1;return!0};goog.array.count=function(a,b,c){var d=0;goog.array.forEach(a,function(a,f,g){b.call(c,a,f,g)&&++d},c);return d};\ngoog.array.find=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0>b?null:\"string\"===typeof a?a.charAt(b):a[b]};goog.array.findIndex=function(a,b,c){for(var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a,f=0;f<d;f++)if(f in e&&b.call(c,e[f],f,a))return f;return-1};goog.array.findRight=function(a,b,c){b=goog.array.findIndexRight(a,b,c);return 0>b?null:\"string\"===typeof a?a.charAt(b):a[b]};\ngoog.array.findIndexRight=function(a,b,c){var d=a.length,e=\"string\"===typeof a?a.split(\"\"):a;for(--d;0<=d;d--)if(d in e&&b.call(c,e[d],d,a))return d;return-1};goog.array.contains=function(a,b){return 0<=goog.array.indexOf(a,b)};goog.array.isEmpty=function(a){return 0==a.length};goog.array.clear=function(a){if(!Array.isArray(a))for(var b=a.length-1;0<=b;b--)delete a[b];a.length=0};goog.array.insert=function(a,b){goog.array.contains(a,b)||a.push(b)};\ngoog.array.insertAt=function(a,b,c){goog.array.splice(a,c,0,b)};goog.array.insertArrayAt=function(a,b,c){goog.partial(goog.array.splice,a,c,0).apply(null,b)};goog.array.insertBefore=function(a,b,c){var d;2==arguments.length||0>(d=goog.array.indexOf(a,c))?a.push(b):goog.array.insertAt(a,b,d)};goog.array.remove=function(a,b){b=goog.array.indexOf(a,b);var c;(c=0<=b)&&goog.array.removeAt(a,b);return c};\ngoog.array.removeLast=function(a,b){b=goog.array.lastIndexOf(a,b);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAt=function(a,b){goog.asserts.assert(null!=a.length);return 1==Array.prototype.splice.call(a,b,1).length};goog.array.removeIf=function(a,b,c){b=goog.array.findIndex(a,b,c);return 0<=b?(goog.array.removeAt(a,b),!0):!1};goog.array.removeAllIf=function(a,b,c){var d=0;goog.array.forEachRight(a,function(e,f){b.call(c,e,f,a)&&goog.array.removeAt(a,f)&&d++});return d};\ngoog.array.concat=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.join=function(a){return Array.prototype.concat.apply([],arguments)};goog.array.toArray=function(a){var b=a.length;if(0<b){for(var c=Array(b),d=0;d<b;d++)c[d]=a[d];return c}return[]};goog.array.clone=goog.array.toArray;goog.array.extend=function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(goog.isArrayLike(d)){var e=a.length||0,f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}};\ngoog.array.splice=function(a,b,c,d){goog.asserts.assert(null!=a.length);return Array.prototype.splice.apply(a,goog.array.slice(arguments,1))};goog.array.slice=function(a,b,c){goog.asserts.assert(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)};\ngoog.array.removeDuplicates=function(a,b,c){b=b||a;var d=function(a){return goog.isObject(a)?\"o\"+goog.getUid(a):(typeof a).charAt(0)+a};c=c||d;d={};for(var e=0,f=0;f<a.length;){var g=a[f++],h=c(g);Object.prototype.hasOwnProperty.call(d,h)||(d[h]=!0,b[e++]=g)}b.length=e};goog.array.binarySearch=function(a,b,c){return goog.array.binarySearch_(a,c||goog.array.defaultCompare,!1,b)};goog.array.binarySelect=function(a,b,c){return goog.array.binarySearch_(a,b,!0,void 0,c)};\ngoog.array.binarySearch_=function(a,b,c,d,e){for(var f=0,g=a.length,h;f<g;){var k=f+(g-f>>>1);var l=c?b.call(e,a[k],k,a):b(d,a[k]);0<l?f=k+1:(g=k,h=!l)}return h?f:-f-1};goog.array.sort=function(a,b){a.sort(b||goog.array.defaultCompare)};goog.array.stableSort=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]={index:d,value:a[d]};var e=b||goog.array.defaultCompare;goog.array.sort(c,function(a,b){return e(a.value,b.value)||a.index-b.index});for(d=0;d<a.length;d++)a[d]=c[d].value};\ngoog.array.sortByKey=function(a,b,c){var d=c||goog.array.defaultCompare;goog.array.sort(a,function(a,c){return d(b(a),b(c))})};goog.array.sortObjectsByKey=function(a,b,c){goog.array.sortByKey(a,function(a){return a[b]},c)};goog.array.isSorted=function(a,b,c){b=b||goog.array.defaultCompare;for(var d=1;d<a.length;d++){var e=b(a[d-1],a[d]);if(0<e||0==e&&c)return!1}return!0};\ngoog.array.equals=function(a,b,c){if(!goog.isArrayLike(a)||!goog.isArrayLike(b)||a.length!=b.length)return!1;var d=a.length;c=c||goog.array.defaultCompareEquality;for(var e=0;e<d;e++)if(!c(a[e],b[e]))return!1;return!0};goog.array.compare3=function(a,b,c){c=c||goog.array.defaultCompare;for(var d=Math.min(a.length,b.length),e=0;e<d;e++){var f=c(a[e],b[e]);if(0!=f)return f}return goog.array.defaultCompare(a.length,b.length)};goog.array.defaultCompare=function(a,b){return a>b?1:a<b?-1:0};\ngoog.array.inverseDefaultCompare=function(a,b){return-goog.array.defaultCompare(a,b)};goog.array.defaultCompareEquality=function(a,b){return a===b};goog.array.binaryInsert=function(a,b,c){c=goog.array.binarySearch(a,b,c);return 0>c?(goog.array.insertAt(a,b,-(c+1)),!0):!1};goog.array.binaryRemove=function(a,b,c){b=goog.array.binarySearch(a,b,c);return 0<=b?goog.array.removeAt(a,b):!1};\ngoog.array.bucket=function(a,b,c){for(var d={},e=0;e<a.length;e++){var f=a[e],g=b.call(c,f,e,a);void 0!==g&&(d[g]||(d[g]=[])).push(f)}return d};goog.array.toObject=function(a,b,c){var d={};goog.array.forEach(a,function(e,f){d[b.call(c,e,f,a)]=e});return d};goog.array.range=function(a,b,c){var d=[],e=0,f=a;c=c||1;void 0!==b&&(e=a,f=b);if(0>c*(f-e))return[];if(0<c)for(a=e;a<f;a+=c)d.push(a);else for(a=e;a>f;a+=c)d.push(a);return d};goog.array.repeat=function(a,b){for(var c=[],d=0;d<b;d++)c[d]=a;return c};\ngoog.array.flatten=function(a){for(var b=[],c=0;c<arguments.length;c++){var d=arguments[c];if(Array.isArray(d))for(var e=0;e<d.length;e+=8192){var f=goog.array.slice(d,e,e+8192);f=goog.array.flatten.apply(null,f);for(var g=0;g<f.length;g++)b.push(f[g])}else b.push(d)}return b};goog.array.rotate=function(a,b){goog.asserts.assert(null!=a.length);a.length&&(b%=a.length,0<b?Array.prototype.unshift.apply(a,a.splice(-b,b)):0>b&&Array.prototype.push.apply(a,a.splice(0,-b)));return a};\ngoog.array.moveItem=function(a,b,c){goog.asserts.assert(0<=b&&b<a.length);goog.asserts.assert(0<=c&&c<a.length);b=Array.prototype.splice.call(a,b,1);Array.prototype.splice.call(a,c,0,b[0])};goog.array.zip=function(a){if(!arguments.length)return[];for(var b=[],c=arguments[0].length,d=1;d<arguments.length;d++)arguments[d].length<c&&(c=arguments[d].length);for(d=0;d<c;d++){for(var e=[],f=0;f<arguments.length;f++)e.push(arguments[f][d]);b.push(e)}return b};\ngoog.array.shuffle=function(a,b){b=b||Math.random;for(var c=a.length-1;0<c;c--){var d=Math.floor(b()*(c+1)),e=a[c];a[c]=a[d];a[d]=e}};goog.array.copyByIndex=function(a,b){var c=[];goog.array.forEach(b,function(b){c.push(a[b])});return c};goog.array.concatMap=function(a,b,c){return goog.array.concat.apply([],goog.array.map(a,b,c))};goog.crypt={};goog.crypt.stringToByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);255<e&&(b[c++]=e&255,e>>=8);b[c++]=e}return b};goog.crypt.byteArrayToString=function(a){if(8192>=a.length)return String.fromCharCode.apply(null,a);for(var b=\"\",c=0;c<a.length;c+=8192){var d=goog.array.slice(a,c,c+8192);b+=String.fromCharCode.apply(null,d)}return b};\ngoog.crypt.byteArrayToHex=function(a,b){return goog.array.map(a,function(a){a=a.toString(16);return 1<a.length?a:\"0\"+a}).join(b||\"\")};goog.crypt.hexToByteArray=function(a){goog.asserts.assert(0==a.length%2,\"Key string length must be multiple of 2\");for(var b=[],c=0;c<a.length;c+=2)b.push(parseInt(a.substring(c,c+2),16));return b};\ngoog.crypt.stringToUtf8ByteArray=function(a){for(var b=[],c=0,d=0;d<a.length;d++){var e=a.charCodeAt(d);128>e?b[c++]=e:(2048>e?b[c++]=e>>6|192:(55296==(e&64512)&&d+1<a.length&&56320==(a.charCodeAt(d+1)&64512)?(e=65536+((e&1023)<<10)+(a.charCodeAt(++d)&1023),b[c++]=e>>18|240,b[c++]=e>>12&63|128):b[c++]=e>>12|224,b[c++]=e>>6&63|128),b[c++]=e&63|128)}return b};\ngoog.crypt.utf8ByteArrayToString=function(a){for(var b=[],c=0,d=0;c<a.length;){var e=a[c++];if(128>e)b[d++]=String.fromCharCode(e);else if(191<e&&224>e){var f=a[c++];b[d++]=String.fromCharCode((e&31)<<6|f&63)}else if(239<e&&365>e){f=a[c++];var g=a[c++],h=a[c++];e=((e&7)<<18|(f&63)<<12|(g&63)<<6|h&63)-65536;b[d++]=String.fromCharCode(55296+(e>>10));b[d++]=String.fromCharCode(56320+(e&1023))}else f=a[c++],g=a[c++],b[d++]=String.fromCharCode((e&15)<<12|(f&63)<<6|g&63)}return b.join(\"\")};\ngoog.crypt.xorByteArray=function(a,b){goog.asserts.assert(a.length==b.length,\"XOR array lengths must match\");for(var c=[],d=0;d<a.length;d++)c.push(a[d]^b[d]);return c};goog.dom.asserts={};goog.dom.asserts.assertIsLocation=function(a){if(goog.asserts.ENABLE_ASSERTS){var b=goog.dom.asserts.getWindow_(a);b&&(!a||!(a instanceof b.Location)&&a instanceof b.Element)&&goog.asserts.fail(\"Argument is not a Location (or a non-Element mock); got: %s\",goog.dom.asserts.debugStringForType_(a))}return a};\ngoog.dom.asserts.assertIsElementType_=function(a,b){if(goog.asserts.ENABLE_ASSERTS){var c=goog.dom.asserts.getWindow_(a);c&&\"undefined\"!=typeof c[b]&&(a&&(a instanceof c[b]||!(a instanceof c.Location||a instanceof c.Element))||goog.asserts.fail(\"Argument is not a %s (or a non-Element, non-Location mock); got: %s\",b,goog.dom.asserts.debugStringForType_(a)))}return a};goog.dom.asserts.assertIsHTMLAnchorElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLAnchorElement\")};\ngoog.dom.asserts.assertIsHTMLButtonElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLButtonElement\")};goog.dom.asserts.assertIsHTMLLinkElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLLinkElement\")};goog.dom.asserts.assertIsHTMLImageElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLImageElement\")};goog.dom.asserts.assertIsHTMLAudioElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLAudioElement\")};\ngoog.dom.asserts.assertIsHTMLVideoElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLVideoElement\")};goog.dom.asserts.assertIsHTMLInputElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLInputElement\")};goog.dom.asserts.assertIsHTMLTextAreaElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLTextAreaElement\")};goog.dom.asserts.assertIsHTMLCanvasElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLCanvasElement\")};\ngoog.dom.asserts.assertIsHTMLEmbedElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLEmbedElement\")};goog.dom.asserts.assertIsHTMLFormElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLFormElement\")};goog.dom.asserts.assertIsHTMLFrameElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLFrameElement\")};goog.dom.asserts.assertIsHTMLIFrameElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLIFrameElement\")};\ngoog.dom.asserts.assertIsHTMLObjectElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLObjectElement\")};goog.dom.asserts.assertIsHTMLScriptElement=function(a){return goog.dom.asserts.assertIsElementType_(a,\"HTMLScriptElement\")};\ngoog.dom.asserts.debugStringForType_=function(a){if(goog.isObject(a))try{return a.constructor.displayName||a.constructor.name||Object.prototype.toString.call(a)}catch(b){return\"<object could not be stringified>\"}else return void 0===a?\"undefined\":null===a?\"null\":typeof a};goog.dom.asserts.getWindow_=function(a){try{var b=a&&a.ownerDocument,c=b&&(b.defaultView||b.parentWindow);c=c||goog.global;if(c.Element&&c.Location)return c}catch(d){}return null};goog.functions={};goog.functions.constant=function(a){return function(){return a}};goog.functions.FALSE=function(){return!1};goog.functions.TRUE=function(){return!0};goog.functions.NULL=function(){return null};goog.functions.identity=function(a,b){return a};goog.functions.error=function(a){return function(){throw Error(a);}};goog.functions.fail=function(a){return function(){throw a;}};\ngoog.functions.lock=function(a,b){b=b||0;return function(){return a.apply(this,Array.prototype.slice.call(arguments,0,b))}};goog.functions.nth=function(a){return function(){return arguments[a]}};goog.functions.partialRight=function(a,b){var c=Array.prototype.slice.call(arguments,1);return function(){var b=Array.prototype.slice.call(arguments);b.push.apply(b,c);return a.apply(this,b)}};goog.functions.withReturnValue=function(a,b){return goog.functions.sequence(a,goog.functions.constant(b))};\ngoog.functions.equalTo=function(a,b){return function(c){return b?a==c:a===c}};goog.functions.compose=function(a,b){var c=arguments,d=c.length;return function(){var a;d&&(a=c[d-1].apply(this,arguments));for(var b=d-2;0<=b;b--)a=c[b].call(this,a);return a}};goog.functions.sequence=function(a){var b=arguments,c=b.length;return function(){for(var a,e=0;e<c;e++)a=b[e].apply(this,arguments);return a}};\ngoog.functions.and=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(!b[a].apply(this,arguments))return!1;return!0}};goog.functions.or=function(a){var b=arguments,c=b.length;return function(){for(var a=0;a<c;a++)if(b[a].apply(this,arguments))return!0;return!1}};goog.functions.not=function(a){return function(){return!a.apply(this,arguments)}};\ngoog.functions.create=function(a,b){var c=function(){};c.prototype=a.prototype;c=new c;a.apply(c,Array.prototype.slice.call(arguments,1));return c};goog.functions.CACHE_RETURN_VALUE=!0;goog.functions.cacheReturnValue=function(a){var b=!1,c;return function(){if(!goog.functions.CACHE_RETURN_VALUE)return a();b||(c=a(),b=!0);return c}};goog.functions.once=function(a){var b=a;return function(){if(b){var a=b;b=null;a()}}};\ngoog.functions.debounce=function(a,b,c){var d=0;return function(e){goog.global.clearTimeout(d);var f=arguments;d=goog.global.setTimeout(function(){a.apply(c,f)},b)}};goog.functions.throttle=function(a,b,c){var d=0,e=!1,f=[],g=function(){d=0;e&&(e=!1,h())},h=function(){d=goog.global.setTimeout(g,b);a.apply(c,f)};return function(a){f=arguments;d?e=!0:h()}};goog.functions.rateLimit=function(a,b,c){var d=0,e=function(){d=0};return function(f){d||(d=goog.global.setTimeout(e,b),a.apply(c,arguments))}};goog.dom.HtmlElement=function(){};goog.dom.TagName=function(a){this.tagName_=a};goog.dom.TagName.prototype.toString=function(){return this.tagName_};goog.dom.TagName.A=new goog.dom.TagName(\"A\");goog.dom.TagName.ABBR=new goog.dom.TagName(\"ABBR\");goog.dom.TagName.ACRONYM=new goog.dom.TagName(\"ACRONYM\");goog.dom.TagName.ADDRESS=new goog.dom.TagName(\"ADDRESS\");goog.dom.TagName.APPLET=new goog.dom.TagName(\"APPLET\");goog.dom.TagName.AREA=new goog.dom.TagName(\"AREA\");goog.dom.TagName.ARTICLE=new goog.dom.TagName(\"ARTICLE\");\ngoog.dom.TagName.ASIDE=new goog.dom.TagName(\"ASIDE\");goog.dom.TagName.AUDIO=new goog.dom.TagName(\"AUDIO\");goog.dom.TagName.B=new goog.dom.TagName(\"B\");goog.dom.TagName.BASE=new goog.dom.TagName(\"BASE\");goog.dom.TagName.BASEFONT=new goog.dom.TagName(\"BASEFONT\");goog.dom.TagName.BDI=new goog.dom.TagName(\"BDI\");goog.dom.TagName.BDO=new goog.dom.TagName(\"BDO\");goog.dom.TagName.BIG=new goog.dom.TagName(\"BIG\");goog.dom.TagName.BLOCKQUOTE=new goog.dom.TagName(\"BLOCKQUOTE\");goog.dom.TagName.BODY=new goog.dom.TagName(\"BODY\");\ngoog.dom.TagName.BR=new goog.dom.TagName(\"BR\");goog.dom.TagName.BUTTON=new goog.dom.TagName(\"BUTTON\");goog.dom.TagName.CANVAS=new goog.dom.TagName(\"CANVAS\");goog.dom.TagName.CAPTION=new goog.dom.TagName(\"CAPTION\");goog.dom.TagName.CENTER=new goog.dom.TagName(\"CENTER\");goog.dom.TagName.CITE=new goog.dom.TagName(\"CITE\");goog.dom.TagName.CODE=new goog.dom.TagName(\"CODE\");goog.dom.TagName.COL=new goog.dom.TagName(\"COL\");goog.dom.TagName.COLGROUP=new goog.dom.TagName(\"COLGROUP\");\ngoog.dom.TagName.COMMAND=new goog.dom.TagName(\"COMMAND\");goog.dom.TagName.DATA=new goog.dom.TagName(\"DATA\");goog.dom.TagName.DATALIST=new goog.dom.TagName(\"DATALIST\");goog.dom.TagName.DD=new goog.dom.TagName(\"DD\");goog.dom.TagName.DEL=new goog.dom.TagName(\"DEL\");goog.dom.TagName.DETAILS=new goog.dom.TagName(\"DETAILS\");goog.dom.TagName.DFN=new goog.dom.TagName(\"DFN\");goog.dom.TagName.DIALOG=new goog.dom.TagName(\"DIALOG\");goog.dom.TagName.DIR=new goog.dom.TagName(\"DIR\");goog.dom.TagName.DIV=new goog.dom.TagName(\"DIV\");\ngoog.dom.TagName.DL=new goog.dom.TagName(\"DL\");goog.dom.TagName.DT=new goog.dom.TagName(\"DT\");goog.dom.TagName.EM=new goog.dom.TagName(\"EM\");goog.dom.TagName.EMBED=new goog.dom.TagName(\"EMBED\");goog.dom.TagName.FIELDSET=new goog.dom.TagName(\"FIELDSET\");goog.dom.TagName.FIGCAPTION=new goog.dom.TagName(\"FIGCAPTION\");goog.dom.TagName.FIGURE=new goog.dom.TagName(\"FIGURE\");goog.dom.TagName.FONT=new goog.dom.TagName(\"FONT\");goog.dom.TagName.FOOTER=new goog.dom.TagName(\"FOOTER\");goog.dom.TagName.FORM=new goog.dom.TagName(\"FORM\");\ngoog.dom.TagName.FRAME=new goog.dom.TagName(\"FRAME\");goog.dom.TagName.FRAMESET=new goog.dom.TagName(\"FRAMESET\");goog.dom.TagName.H1=new goog.dom.TagName(\"H1\");goog.dom.TagName.H2=new goog.dom.TagName(\"H2\");goog.dom.TagName.H3=new goog.dom.TagName(\"H3\");goog.dom.TagName.H4=new goog.dom.TagName(\"H4\");goog.dom.TagName.H5=new goog.dom.TagName(\"H5\");goog.dom.TagName.H6=new goog.dom.TagName(\"H6\");goog.dom.TagName.HEAD=new goog.dom.TagName(\"HEAD\");goog.dom.TagName.HEADER=new goog.dom.TagName(\"HEADER\");\ngoog.dom.TagName.HGROUP=new goog.dom.TagName(\"HGROUP\");goog.dom.TagName.HR=new goog.dom.TagName(\"HR\");goog.dom.TagName.HTML=new goog.dom.TagName(\"HTML\");goog.dom.TagName.I=new goog.dom.TagName(\"I\");goog.dom.TagName.IFRAME=new goog.dom.TagName(\"IFRAME\");goog.dom.TagName.IMG=new goog.dom.TagName(\"IMG\");goog.dom.TagName.INPUT=new goog.dom.TagName(\"INPUT\");goog.dom.TagName.INS=new goog.dom.TagName(\"INS\");goog.dom.TagName.ISINDEX=new goog.dom.TagName(\"ISINDEX\");goog.dom.TagName.KBD=new goog.dom.TagName(\"KBD\");\ngoog.dom.TagName.KEYGEN=new goog.dom.TagName(\"KEYGEN\");goog.dom.TagName.LABEL=new goog.dom.TagName(\"LABEL\");goog.dom.TagName.LEGEND=new goog.dom.TagName(\"LEGEND\");goog.dom.TagName.LI=new goog.dom.TagName(\"LI\");goog.dom.TagName.LINK=new goog.dom.TagName(\"LINK\");goog.dom.TagName.MAIN=new goog.dom.TagName(\"MAIN\");goog.dom.TagName.MAP=new goog.dom.TagName(\"MAP\");goog.dom.TagName.MARK=new goog.dom.TagName(\"MARK\");goog.dom.TagName.MATH=new goog.dom.TagName(\"MATH\");goog.dom.TagName.MENU=new goog.dom.TagName(\"MENU\");\ngoog.dom.TagName.MENUITEM=new goog.dom.TagName(\"MENUITEM\");goog.dom.TagName.META=new goog.dom.TagName(\"META\");goog.dom.TagName.METER=new goog.dom.TagName(\"METER\");goog.dom.TagName.NAV=new goog.dom.TagName(\"NAV\");goog.dom.TagName.NOFRAMES=new goog.dom.TagName(\"NOFRAMES\");goog.dom.TagName.NOSCRIPT=new goog.dom.TagName(\"NOSCRIPT\");goog.dom.TagName.OBJECT=new goog.dom.TagName(\"OBJECT\");goog.dom.TagName.OL=new goog.dom.TagName(\"OL\");goog.dom.TagName.OPTGROUP=new goog.dom.TagName(\"OPTGROUP\");\ngoog.dom.TagName.OPTION=new goog.dom.TagName(\"OPTION\");goog.dom.TagName.OUTPUT=new goog.dom.TagName(\"OUTPUT\");goog.dom.TagName.P=new goog.dom.TagName(\"P\");goog.dom.TagName.PARAM=new goog.dom.TagName(\"PARAM\");goog.dom.TagName.PICTURE=new goog.dom.TagName(\"PICTURE\");goog.dom.TagName.PRE=new goog.dom.TagName(\"PRE\");goog.dom.TagName.PROGRESS=new goog.dom.TagName(\"PROGRESS\");goog.dom.TagName.Q=new goog.dom.TagName(\"Q\");goog.dom.TagName.RP=new goog.dom.TagName(\"RP\");goog.dom.TagName.RT=new goog.dom.TagName(\"RT\");\ngoog.dom.TagName.RTC=new goog.dom.TagName(\"RTC\");goog.dom.TagName.RUBY=new goog.dom.TagName(\"RUBY\");goog.dom.TagName.S=new goog.dom.TagName(\"S\");goog.dom.TagName.SAMP=new goog.dom.TagName(\"SAMP\");goog.dom.TagName.SCRIPT=new goog.dom.TagName(\"SCRIPT\");goog.dom.TagName.SECTION=new goog.dom.TagName(\"SECTION\");goog.dom.TagName.SELECT=new goog.dom.TagName(\"SELECT\");goog.dom.TagName.SMALL=new goog.dom.TagName(\"SMALL\");goog.dom.TagName.SOURCE=new goog.dom.TagName(\"SOURCE\");goog.dom.TagName.SPAN=new goog.dom.TagName(\"SPAN\");\ngoog.dom.TagName.STRIKE=new goog.dom.TagName(\"STRIKE\");goog.dom.TagName.STRONG=new goog.dom.TagName(\"STRONG\");goog.dom.TagName.STYLE=new goog.dom.TagName(\"STYLE\");goog.dom.TagName.SUB=new goog.dom.TagName(\"SUB\");goog.dom.TagName.SUMMARY=new goog.dom.TagName(\"SUMMARY\");goog.dom.TagName.SUP=new goog.dom.TagName(\"SUP\");goog.dom.TagName.SVG=new goog.dom.TagName(\"SVG\");goog.dom.TagName.TABLE=new goog.dom.TagName(\"TABLE\");goog.dom.TagName.TBODY=new goog.dom.TagName(\"TBODY\");goog.dom.TagName.TD=new goog.dom.TagName(\"TD\");\ngoog.dom.TagName.TEMPLATE=new goog.dom.TagName(\"TEMPLATE\");goog.dom.TagName.TEXTAREA=new goog.dom.TagName(\"TEXTAREA\");goog.dom.TagName.TFOOT=new goog.dom.TagName(\"TFOOT\");goog.dom.TagName.TH=new goog.dom.TagName(\"TH\");goog.dom.TagName.THEAD=new goog.dom.TagName(\"THEAD\");goog.dom.TagName.TIME=new goog.dom.TagName(\"TIME\");goog.dom.TagName.TITLE=new goog.dom.TagName(\"TITLE\");goog.dom.TagName.TR=new goog.dom.TagName(\"TR\");goog.dom.TagName.TRACK=new goog.dom.TagName(\"TRACK\");goog.dom.TagName.TT=new goog.dom.TagName(\"TT\");\ngoog.dom.TagName.U=new goog.dom.TagName(\"U\");goog.dom.TagName.UL=new goog.dom.TagName(\"UL\");goog.dom.TagName.VAR=new goog.dom.TagName(\"VAR\");goog.dom.TagName.VIDEO=new goog.dom.TagName(\"VIDEO\");goog.dom.TagName.WBR=new goog.dom.TagName(\"WBR\");goog.dom.tags={};goog.dom.tags.VOID_TAGS_={area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0};goog.dom.tags.isVoidTag=function(a){return!0===goog.dom.tags.VOID_TAGS_[a]};goog.html={};goog.html.trustedtypes={};goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY=goog.TRUSTED_TYPES_POLICY_NAME?goog.createTrustedTypesPolicy(goog.TRUSTED_TYPES_POLICY_NAME+\"#html\"):null;goog.string={};goog.string.TypedString=function(){};goog.string.Const=function(a,b){this.stringConstValueWithSecurityContract__googStringSecurityPrivate_=a===goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_&&b||\"\";this.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_=goog.string.Const.TYPE_MARKER_};goog.string.Const.prototype.implementsGoogStringTypedString=!0;goog.string.Const.prototype.getTypedStringValue=function(){return this.stringConstValueWithSecurityContract__googStringSecurityPrivate_};\ngoog.DEBUG&&(goog.string.Const.prototype.toString=function(){return\"Const{\"+this.stringConstValueWithSecurityContract__googStringSecurityPrivate_+\"}\"});goog.string.Const.unwrap=function(a){if(a instanceof goog.string.Const&&a.constructor===goog.string.Const&&a.STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_===goog.string.Const.TYPE_MARKER_)return a.stringConstValueWithSecurityContract__googStringSecurityPrivate_;goog.asserts.fail(\"expected object of type Const, got '\"+a+\"'\");return\"type_error:Const\"};\ngoog.string.Const.from=function(a){return new goog.string.Const(goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_,a)};goog.string.Const.TYPE_MARKER_={};goog.string.Const.GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_={};goog.string.Const.EMPTY=goog.string.Const.from(\"\");goog.html.SafeScript=function(){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=\"\";this.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeScript.prototype.implementsGoogStringTypedString=!0;goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeScript.fromConstant=function(a){a=goog.string.Const.unwrap(a);return 0===a.length?goog.html.SafeScript.EMPTY:goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeScript.fromConstantAndArgs=function(a,b){for(var c=[],d=1;d<arguments.length;d++)c.push(goog.html.SafeScript.stringify_(arguments[d]));return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(\"(\"+goog.string.Const.unwrap(a)+\")(\"+c.join(\", \")+\");\")};goog.html.SafeScript.fromJson=function(a){return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(goog.html.SafeScript.stringify_(a))};goog.html.SafeScript.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeScriptWrappedValue_.toString()};\ngoog.DEBUG&&(goog.html.SafeScript.prototype.toString=function(){return\"SafeScript{\"+this.privateDoNotAccessOrElseSafeScriptWrappedValue_+\"}\"});goog.html.SafeScript.unwrap=function(a){return goog.html.SafeScript.unwrapTrustedScript(a).toString()};\ngoog.html.SafeScript.unwrapTrustedScript=function(a){if(a instanceof goog.html.SafeScript&&a.constructor===goog.html.SafeScript&&a.SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeScript.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeScriptWrappedValue_;goog.asserts.fail(\"expected object of type SafeScript, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:SafeScript\"};\ngoog.html.SafeScript.stringify_=function(a){return JSON.stringify(a).replace(/</g,\"\\\\x3c\")};goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeScript).initSecurityPrivateDoNotAccessOrElse_(a)};\ngoog.html.SafeScript.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeScriptWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScript(a):a;return this};goog.html.SafeScript.EMPTY=goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(\"\");goog.fs={};goog.fs.url={};goog.fs.url.createObjectUrl=function(a){return goog.fs.url.getUrlObject_().createObjectURL(a)};goog.fs.url.revokeObjectUrl=function(a){goog.fs.url.getUrlObject_().revokeObjectURL(a)};goog.fs.url.UrlObject_=function(){};goog.fs.url.UrlObject_.prototype.createObjectURL=function(a){};goog.fs.url.UrlObject_.prototype.revokeObjectURL=function(a){};\ngoog.fs.url.getUrlObject_=function(){var a=goog.fs.url.findUrlObject_();if(null!=a)return a;throw Error(\"This browser doesn't seem to support blob URLs\");};goog.fs.url.findUrlObject_=function(){return void 0!==goog.global.URL&&void 0!==goog.global.URL.createObjectURL?goog.global.URL:void 0!==goog.global.webkitURL&&void 0!==goog.global.webkitURL.createObjectURL?goog.global.webkitURL:void 0!==goog.global.createObjectURL?goog.global:null};\ngoog.fs.url.browserSupportsObjectUrls=function(){return null!=goog.fs.url.findUrlObject_()};goog.fs.blob={};goog.fs.blob.getBlob=function(a){var b=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==b){b=new b;for(var c=0;c<arguments.length;c++)b.append(arguments[c]);return b.getBlob()}return goog.fs.blob.getBlobWithProperties(goog.array.toArray(arguments))};\ngoog.fs.blob.getBlobWithProperties=function(a,b,c){var d=goog.global.BlobBuilder||goog.global.WebKitBlobBuilder;if(void 0!==d){d=new d;for(var e=0;e<a.length;e++)d.append(a[e],c);return d.getBlob(b)}if(void 0!==goog.global.Blob)return d={},b&&(d.type=b),c&&(d.endings=c),new Blob(a,d);throw Error(\"This browser doesn't seem to support creating Blobs\");};goog.i18n={};goog.i18n.bidi={};goog.i18n.bidi.FORCE_RTL=!1;\ngoog.i18n.bidi.IS_RTL=goog.i18n.bidi.FORCE_RTL||(\"ar\"==goog.LOCALE.substring(0,2).toLowerCase()||\"fa\"==goog.LOCALE.substring(0,2).toLowerCase()||\"he\"==goog.LOCALE.substring(0,2).toLowerCase()||\"iw\"==goog.LOCALE.substring(0,2).toLowerCase()||\"ps\"==goog.LOCALE.substring(0,2).toLowerCase()||\"sd\"==goog.LOCALE.substring(0,2).toLowerCase()||\"ug\"==goog.LOCALE.substring(0,2).toLowerCase()||\"ur\"==goog.LOCALE.substring(0,2).toLowerCase()||\"yi\"==goog.LOCALE.substring(0,2).toLowerCase())&&(2==goog.LOCALE.length||\n\"-\"==goog.LOCALE.substring(2,3)||\"_\"==goog.LOCALE.substring(2,3))||3<=goog.LOCALE.length&&\"ckb\"==goog.LOCALE.substring(0,3).toLowerCase()&&(3==goog.LOCALE.length||\"-\"==goog.LOCALE.substring(3,4)||\"_\"==goog.LOCALE.substring(3,4))||7<=goog.LOCALE.length&&(\"-\"==goog.LOCALE.substring(2,3)||\"_\"==goog.LOCALE.substring(2,3))&&(\"adlm\"==goog.LOCALE.substring(3,7).toLowerCase()||\"arab\"==goog.LOCALE.substring(3,7).toLowerCase()||\"hebr\"==goog.LOCALE.substring(3,7).toLowerCase()||\"nkoo\"==goog.LOCALE.substring(3,\n7).toLowerCase()||\"rohg\"==goog.LOCALE.substring(3,7).toLowerCase()||\"thaa\"==goog.LOCALE.substring(3,7).toLowerCase())||8<=goog.LOCALE.length&&(\"-\"==goog.LOCALE.substring(3,4)||\"_\"==goog.LOCALE.substring(3,4))&&(\"adlm\"==goog.LOCALE.substring(4,8).toLowerCase()||\"arab\"==goog.LOCALE.substring(4,8).toLowerCase()||\"hebr\"==goog.LOCALE.substring(4,8).toLowerCase()||\"nkoo\"==goog.LOCALE.substring(4,8).toLowerCase()||\"rohg\"==goog.LOCALE.substring(4,8).toLowerCase()||\"thaa\"==goog.LOCALE.substring(4,8).toLowerCase());\ngoog.i18n.bidi.Format={LRE:\"\\u202a\",RLE:\"\\u202b\",PDF:\"\\u202c\",LRM:\"\\u200e\",RLM:\"\\u200f\"};goog.i18n.bidi.Dir={LTR:1,RTL:-1,NEUTRAL:0};goog.i18n.bidi.RIGHT=\"right\";goog.i18n.bidi.LEFT=\"left\";goog.i18n.bidi.I18N_RIGHT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.LEFT:goog.i18n.bidi.RIGHT;goog.i18n.bidi.I18N_LEFT=goog.i18n.bidi.IS_RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT;\ngoog.i18n.bidi.toDir=function(a,b){return\"number\"==typeof a?0<a?goog.i18n.bidi.Dir.LTR:0>a?goog.i18n.bidi.Dir.RTL:b?null:goog.i18n.bidi.Dir.NEUTRAL:null==a?null:a?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};goog.i18n.bidi.ltrChars_=\"A-Za-z\\u00c0-\\u00d6\\u00d8-\\u00f6\\u00f8-\\u02b8\\u0300-\\u0590\\u0900-\\u1fff\\u200e\\u2c00-\\ud801\\ud804-\\ud839\\ud83c-\\udbff\\uf900-\\ufb1c\\ufe00-\\ufe6f\\ufefd-\\uffff\";goog.i18n.bidi.rtlChars_=\"\\u0591-\\u06ef\\u06fa-\\u08ff\\u200f\\ud802-\\ud803\\ud83a-\\ud83b\\ufb1d-\\ufdff\\ufe70-\\ufefc\";\ngoog.i18n.bidi.htmlSkipReg_=/<[^>]*>|&[^;]+;/g;goog.i18n.bidi.stripHtmlIfNeeded_=function(a,b){return b?a.replace(goog.i18n.bidi.htmlSkipReg_,\"\"):a};goog.i18n.bidi.rtlCharReg_=new RegExp(\"[\"+goog.i18n.bidi.rtlChars_+\"]\");goog.i18n.bidi.ltrCharReg_=new RegExp(\"[\"+goog.i18n.bidi.ltrChars_+\"]\");goog.i18n.bidi.hasAnyRtl=function(a,b){return goog.i18n.bidi.rtlCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.hasRtlChar=goog.i18n.bidi.hasAnyRtl;\ngoog.i18n.bidi.hasAnyLtr=function(a,b){return goog.i18n.bidi.ltrCharReg_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.ltrRe_=new RegExp(\"^[\"+goog.i18n.bidi.ltrChars_+\"]\");goog.i18n.bidi.rtlRe_=new RegExp(\"^[\"+goog.i18n.bidi.rtlChars_+\"]\");goog.i18n.bidi.isRtlChar=function(a){return goog.i18n.bidi.rtlRe_.test(a)};goog.i18n.bidi.isLtrChar=function(a){return goog.i18n.bidi.ltrRe_.test(a)};goog.i18n.bidi.isNeutralChar=function(a){return!goog.i18n.bidi.isLtrChar(a)&&!goog.i18n.bidi.isRtlChar(a)};\ngoog.i18n.bidi.ltrDirCheckRe_=new RegExp(\"^[^\"+goog.i18n.bidi.rtlChars_+\"]*[\"+goog.i18n.bidi.ltrChars_+\"]\");goog.i18n.bidi.rtlDirCheckRe_=new RegExp(\"^[^\"+goog.i18n.bidi.ltrChars_+\"]*[\"+goog.i18n.bidi.rtlChars_+\"]\");goog.i18n.bidi.startsWithRtl=function(a,b){return goog.i18n.bidi.rtlDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlText=goog.i18n.bidi.startsWithRtl;\ngoog.i18n.bidi.startsWithLtr=function(a,b){return goog.i18n.bidi.ltrDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrText=goog.i18n.bidi.startsWithLtr;goog.i18n.bidi.isRequiredLtrRe_=/^http:\\/\\/.*/;goog.i18n.bidi.isNeutralText=function(a,b){a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b);return goog.i18n.bidi.isRequiredLtrRe_.test(a)||!goog.i18n.bidi.hasAnyLtr(a)&&!goog.i18n.bidi.hasAnyRtl(a)};\ngoog.i18n.bidi.ltrExitDirCheckRe_=new RegExp(\"[\"+goog.i18n.bidi.ltrChars_+\"][^\"+goog.i18n.bidi.rtlChars_+\"]*$\");goog.i18n.bidi.rtlExitDirCheckRe_=new RegExp(\"[\"+goog.i18n.bidi.rtlChars_+\"][^\"+goog.i18n.bidi.ltrChars_+\"]*$\");goog.i18n.bidi.endsWithLtr=function(a,b){return goog.i18n.bidi.ltrExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isLtrExitText=goog.i18n.bidi.endsWithLtr;\ngoog.i18n.bidi.endsWithRtl=function(a,b){return goog.i18n.bidi.rtlExitDirCheckRe_.test(goog.i18n.bidi.stripHtmlIfNeeded_(a,b))};goog.i18n.bidi.isRtlExitText=goog.i18n.bidi.endsWithRtl;goog.i18n.bidi.rtlLocalesRe_=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;goog.i18n.bidi.isRtlLanguage=function(a){return goog.i18n.bidi.rtlLocalesRe_.test(a)};goog.i18n.bidi.bracketGuardTextRe_=/(\\(.*?\\)+)|(\\[.*?\\]+)|(\\{.*?\\}+)|(<.*?>+)/g;\ngoog.i18n.bidi.guardBracketInText=function(a,b){b=(void 0===b?goog.i18n.bidi.hasAnyRtl(a):b)?goog.i18n.bidi.Format.RLM:goog.i18n.bidi.Format.LRM;return a.replace(goog.i18n.bidi.bracketGuardTextRe_,b+\"$&\"+b)};goog.i18n.bidi.enforceRtlInHtml=function(a){return\"<\"==a.charAt(0)?a.replace(/<\\w+/,\"$& dir=rtl\"):\"\\n<span dir=rtl>\"+a+\"</span>\"};goog.i18n.bidi.enforceRtlInText=function(a){return goog.i18n.bidi.Format.RLE+a+goog.i18n.bidi.Format.PDF};\ngoog.i18n.bidi.enforceLtrInHtml=function(a){return\"<\"==a.charAt(0)?a.replace(/<\\w+/,\"$& dir=ltr\"):\"\\n<span dir=ltr>\"+a+\"</span>\"};goog.i18n.bidi.enforceLtrInText=function(a){return goog.i18n.bidi.Format.LRE+a+goog.i18n.bidi.Format.PDF};goog.i18n.bidi.dimensionsRe_=/:\\s*([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)\\s+([.\\d][.\\w]*)/g;goog.i18n.bidi.leftRe_=/left/gi;goog.i18n.bidi.rightRe_=/right/gi;goog.i18n.bidi.tempRe_=/%%%%/g;\ngoog.i18n.bidi.mirrorCSS=function(a){return a.replace(goog.i18n.bidi.dimensionsRe_,\":$1 $4 $3 $2\").replace(goog.i18n.bidi.leftRe_,\"%%%%\").replace(goog.i18n.bidi.rightRe_,goog.i18n.bidi.LEFT).replace(goog.i18n.bidi.tempRe_,goog.i18n.bidi.RIGHT)};goog.i18n.bidi.doubleQuoteSubstituteRe_=/([\\u0591-\\u05f2])\"/g;goog.i18n.bidi.singleQuoteSubstituteRe_=/([\\u0591-\\u05f2])'/g;\ngoog.i18n.bidi.normalizeHebrewQuote=function(a){return a.replace(goog.i18n.bidi.doubleQuoteSubstituteRe_,\"$1\\u05f4\").replace(goog.i18n.bidi.singleQuoteSubstituteRe_,\"$1\\u05f3\")};goog.i18n.bidi.wordSeparatorRe_=/\\s+/;goog.i18n.bidi.hasNumeralsRe_=/[\\d\\u06f0-\\u06f9]/;goog.i18n.bidi.rtlDetectionThreshold_=.4;\ngoog.i18n.bidi.estimateDirection=function(a,b){var c=0,d=0,e=!1;a=goog.i18n.bidi.stripHtmlIfNeeded_(a,b).split(goog.i18n.bidi.wordSeparatorRe_);for(b=0;b<a.length;b++){var f=a[b];goog.i18n.bidi.startsWithRtl(f)?(c++,d++):goog.i18n.bidi.isRequiredLtrRe_.test(f)?e=!0:goog.i18n.bidi.hasAnyLtr(f)?d++:goog.i18n.bidi.hasNumeralsRe_.test(f)&&(e=!0)}return 0==d?e?goog.i18n.bidi.Dir.LTR:goog.i18n.bidi.Dir.NEUTRAL:c/d>goog.i18n.bidi.rtlDetectionThreshold_?goog.i18n.bidi.Dir.RTL:goog.i18n.bidi.Dir.LTR};\ngoog.i18n.bidi.detectRtlDirectionality=function(a,b){return goog.i18n.bidi.estimateDirection(a,b)==goog.i18n.bidi.Dir.RTL};goog.i18n.bidi.setElementDirAndAlign=function(a,b){a&&(b=goog.i18n.bidi.toDir(b))&&(a.style.textAlign=b==goog.i18n.bidi.Dir.RTL?goog.i18n.bidi.RIGHT:goog.i18n.bidi.LEFT,a.dir=b==goog.i18n.bidi.Dir.RTL?\"rtl\":\"ltr\")};\ngoog.i18n.bidi.setElementDirByTextDirectionality=function(a,b){switch(goog.i18n.bidi.estimateDirection(b)){case goog.i18n.bidi.Dir.LTR:a.dir=\"ltr\";break;case goog.i18n.bidi.Dir.RTL:a.dir=\"rtl\";break;default:a.removeAttribute(\"dir\")}};goog.i18n.bidi.DirectionalString=function(){};goog.html.TrustedResourceUrl=function(a,b){this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_=a===goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&b||\"\";this.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.TrustedResourceUrl.prototype.implementsGoogStringTypedString=!0;goog.html.TrustedResourceUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_.toString()};\ngoog.html.TrustedResourceUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.TrustedResourceUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};\ngoog.html.TrustedResourceUrl.prototype.cloneWithParams=function(a,b){var c=goog.html.TrustedResourceUrl.unwrap(this);c=goog.html.TrustedResourceUrl.URL_PARAM_PARSER_.exec(c);var d=c[3]||\"\";return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(c[1]+goog.html.TrustedResourceUrl.stringifyParams_(\"?\",c[2]||\"\",a)+goog.html.TrustedResourceUrl.stringifyParams_(\"#\",d,b))};\ngoog.DEBUG&&(goog.html.TrustedResourceUrl.prototype.toString=function(){return\"TrustedResourceUrl{\"+this.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_+\"}\"});goog.html.TrustedResourceUrl.unwrap=function(a){return goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(a).toString()};\ngoog.html.TrustedResourceUrl.unwrapTrustedScriptURL=function(a){if(a instanceof goog.html.TrustedResourceUrl&&a.constructor===goog.html.TrustedResourceUrl&&a.TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_;goog.asserts.fail(\"expected object of type TrustedResourceUrl, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:TrustedResourceUrl\"};\ngoog.html.TrustedResourceUrl.format=function(a,b){var c=goog.string.Const.unwrap(a);if(!goog.html.TrustedResourceUrl.BASE_URL_.test(c))throw Error(\"Invalid TrustedResourceUrl format: \"+c);a=c.replace(goog.html.TrustedResourceUrl.FORMAT_MARKER_,function(a,e){if(!Object.prototype.hasOwnProperty.call(b,e))throw Error('Found marker, \"'+e+'\", in format string, \"'+c+'\", but no valid label mapping found in args: '+JSON.stringify(b));a=b[e];return a instanceof goog.string.Const?goog.string.Const.unwrap(a):\nencodeURIComponent(String(a))});return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.TrustedResourceUrl.FORMAT_MARKER_=/%{(\\w+)}/g;goog.html.TrustedResourceUrl.BASE_URL_=/^((https:)?\\/\\/[0-9a-z.:[\\]-]+\\/|\\/[^/\\\\]|[^:/\\\\%]+\\/|[^:/\\\\%]*[?#]|about:blank#)/i;goog.html.TrustedResourceUrl.URL_PARAM_PARSER_=/^([^?#]*)(\\?[^#]*)?(#[\\s\\S]*)?/;\ngoog.html.TrustedResourceUrl.formatWithParams=function(a,b,c,d){return goog.html.TrustedResourceUrl.format(a,b).cloneWithParams(c,d)};goog.html.TrustedResourceUrl.fromConstant=function(a){return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};goog.html.TrustedResourceUrl.fromConstants=function(a){for(var b=\"\",c=0;c<a.length;c++)b+=goog.string.Const.unwrap(a[c]);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.TrustedResourceUrl.fromSafeScript=function(a){a=goog.fs.blob.getBlobWithProperties([goog.html.SafeScript.unwrap(a)],\"text/javascript\");a=goog.fs.url.createObjectUrl(a);return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.TrustedResourceUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse=function(a){a=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createScriptURL(a):a;return new goog.html.TrustedResourceUrl(goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_,a)};\ngoog.html.TrustedResourceUrl.stringifyParams_=function(a,b,c){if(null==c)return b;if(\"string\"===typeof c)return c?a+encodeURIComponent(c):\"\";for(var d in c){var e=c[d];e=Array.isArray(e)?e:[e];for(var f=0;f<e.length;f++){var g=e[f];null!=g&&(b||(b=a),b+=(b.length>a.length?\"&\":\"\")+encodeURIComponent(d)+\"=\"+encodeURIComponent(String(g)))}}return b};goog.html.TrustedResourceUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};goog.string.internal={};goog.string.internal.startsWith=function(a,b){return 0==a.lastIndexOf(b,0)};goog.string.internal.endsWith=function(a,b){var c=a.length-b.length;return 0<=c&&a.indexOf(b,c)==c};goog.string.internal.caseInsensitiveStartsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(0,b.length))};goog.string.internal.caseInsensitiveEndsWith=function(a,b){return 0==goog.string.internal.caseInsensitiveCompare(b,a.substr(a.length-b.length,b.length))};\ngoog.string.internal.caseInsensitiveEquals=function(a,b){return a.toLowerCase()==b.toLowerCase()};goog.string.internal.isEmptyOrWhitespace=function(a){return/^[\\s\\xa0]*$/.test(a)};goog.string.internal.trim=goog.TRUSTED_SITE&&String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\\s\\xa0]*([\\s\\S]*?)[\\s\\xa0]*$/.exec(a)[1]};goog.string.internal.caseInsensitiveCompare=function(a,b){a=String(a).toLowerCase();b=String(b).toLowerCase();return a<b?-1:a==b?0:1};\ngoog.string.internal.newLineToBr=function(a,b){return a.replace(/(\\r\\n|\\r|\\n)/g,b?\"<br />\":\"<br>\")};\ngoog.string.internal.htmlEscape=function(a,b){if(b)a=a.replace(goog.string.internal.AMP_RE_,\"&amp;\").replace(goog.string.internal.LT_RE_,\"&lt;\").replace(goog.string.internal.GT_RE_,\"&gt;\").replace(goog.string.internal.QUOT_RE_,\"&quot;\").replace(goog.string.internal.SINGLE_QUOTE_RE_,\"&#39;\").replace(goog.string.internal.NULL_RE_,\"&#0;\");else{if(!goog.string.internal.ALL_RE_.test(a))return a;-1!=a.indexOf(\"&\")&&(a=a.replace(goog.string.internal.AMP_RE_,\"&amp;\"));-1!=a.indexOf(\"<\")&&(a=a.replace(goog.string.internal.LT_RE_,\n\"&lt;\"));-1!=a.indexOf(\">\")&&(a=a.replace(goog.string.internal.GT_RE_,\"&gt;\"));-1!=a.indexOf('\"')&&(a=a.replace(goog.string.internal.QUOT_RE_,\"&quot;\"));-1!=a.indexOf(\"'\")&&(a=a.replace(goog.string.internal.SINGLE_QUOTE_RE_,\"&#39;\"));-1!=a.indexOf(\"\\x00\")&&(a=a.replace(goog.string.internal.NULL_RE_,\"&#0;\"))}return a};goog.string.internal.AMP_RE_=/&/g;goog.string.internal.LT_RE_=/</g;goog.string.internal.GT_RE_=/>/g;goog.string.internal.QUOT_RE_=/\"/g;goog.string.internal.SINGLE_QUOTE_RE_=/'/g;\ngoog.string.internal.NULL_RE_=/\\x00/g;goog.string.internal.ALL_RE_=/[\\x00&<>\"']/;goog.string.internal.whitespaceEscape=function(a,b){return goog.string.internal.newLineToBr(a.replace(/ /g,\" &#160;\"),b)};goog.string.internal.contains=function(a,b){return-1!=a.indexOf(b)};goog.string.internal.caseInsensitiveContains=function(a,b){return goog.string.internal.contains(a.toLowerCase(),b.toLowerCase())};\ngoog.string.internal.compareVersions=function(a,b){var c=0;a=goog.string.internal.trim(String(a)).split(\".\");b=goog.string.internal.trim(String(b)).split(\".\");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||\"\",g=b[e]||\"\";do{f=/(\\d*)(\\D*)(.*)/.exec(f)||[\"\",\"\",\"\",\"\"];g=/(\\d*)(\\D*)(.*)/.exec(g)||[\"\",\"\",\"\",\"\"];if(0==f[0].length&&0==g[0].length)break;c=0==f[1].length?0:parseInt(f[1],10);var h=0==g[1].length?0:parseInt(g[1],10);c=goog.string.internal.compareElements_(c,h)||goog.string.internal.compareElements_(0==\nf[2].length,0==g[2].length)||goog.string.internal.compareElements_(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c};goog.string.internal.compareElements_=function(a,b){return a<b?-1:a>b?1:0};goog.html.SafeUrl=function(a,b){this.privateDoNotAccessOrElseSafeUrlWrappedValue_=a===goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_&&b||\"\";this.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeUrl.INNOCUOUS_STRING=\"about:invalid#zClosurez\";goog.html.SafeUrl.prototype.implementsGoogStringTypedString=!0;goog.html.SafeUrl.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeUrlWrappedValue_.toString()};\ngoog.html.SafeUrl.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeUrl.prototype.getDirection=function(){return goog.i18n.bidi.Dir.LTR};goog.DEBUG&&(goog.html.SafeUrl.prototype.toString=function(){return\"SafeUrl{\"+this.privateDoNotAccessOrElseSafeUrlWrappedValue_+\"}\"});\ngoog.html.SafeUrl.unwrap=function(a){if(a instanceof goog.html.SafeUrl&&a.constructor===goog.html.SafeUrl&&a.SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeUrlWrappedValue_;goog.asserts.fail(\"expected object of type SafeUrl, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:SafeUrl\"};goog.html.SafeUrl.fromConstant=function(a){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.string.Const.unwrap(a))};\ngoog.html.SAFE_MIME_TYPE_PATTERN_=/^(?:audio\\/(?:3gpp2|3gpp|aac|L16|midi|mp3|mp4|mpeg|oga|ogg|opus|x-m4a|x-matroska|x-wav|wav|webm)|image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp|x-icon)|text\\/csv|video\\/(?:mpeg|mp4|ogg|webm|quicktime|x-matroska))(?:;\\w+=(?:\\w+|\"[\\w;,= ]+\"))*$/i;goog.html.SafeUrl.isSafeMimeType=function(a){return goog.html.SAFE_MIME_TYPE_PATTERN_.test(a)};\ngoog.html.SafeUrl.fromBlob=function(a){a=goog.html.SafeUrl.isSafeMimeType(a.type)?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromMediaSource=function(a){goog.asserts.assert(\"MediaSource\"in goog.global,\"No support for MediaSource\");a=a instanceof MediaSource?goog.fs.url.createObjectUrl(a):goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.DATA_URL_PATTERN_=/^data:(.*);base64,[a-z0-9+\\/]+=*$/i;goog.html.SafeUrl.fromDataUrl=function(a){a=a.replace(/(%0A|%0D)/g,\"\");var b=a.match(goog.html.DATA_URL_PATTERN_);b=b&&goog.html.SafeUrl.isSafeMimeType(b[1]);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b?a:goog.html.SafeUrl.INNOCUOUS_STRING)};goog.html.SafeUrl.fromTelUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,\"tel:\")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SIP_URL_PATTERN_=/^sip[s]?:[+a-z0-9_.!$%&'*\\/=^`{|}~-]+@([a-z0-9-]+\\.)+[a-z0-9]{2,63}$/i;goog.html.SafeUrl.fromSipUrl=function(a){goog.html.SIP_URL_PATTERN_.test(decodeURIComponent(a))||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromFacebookMessengerUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,\"fb-messenger://share\")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeUrl.fromWhatsAppUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,\"whatsapp://send\")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeUrl.fromSmsUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,\"sms:\")&&goog.html.SafeUrl.isSmsUrlBodyValid_(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeUrl.isSmsUrlBodyValid_=function(a){var b=a.indexOf(\"#\");0<b&&(a=a.substring(0,b));b=a.match(/[?&]body=/gi);if(!b)return!0;if(1<b.length)return!1;a=a.match(/[?&]body=([^&]*)/)[1];if(!a)return!0;try{decodeURIComponent(a)}catch(c){return!1}return/^(?:[a-z0-9\\-_.~]|%[0-9a-f]{2})+$/i.test(a)};goog.html.SafeUrl.fromSshUrl=function(a){goog.string.internal.caseInsensitiveStartsWith(a,\"ssh://\")||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeUrl.sanitizeChromeExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^chrome-extension:\\/\\/([^\\/]+)\\//,a,b)};goog.html.SafeUrl.sanitizeFirefoxExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^moz-extension:\\/\\/([^\\/]+)\\//,a,b)};goog.html.SafeUrl.sanitizeEdgeExtensionUrl=function(a,b){return goog.html.SafeUrl.sanitizeExtensionUrl_(/^ms-browser-extension:\\/\\/([^\\/]+)\\//,a,b)};\ngoog.html.SafeUrl.sanitizeExtensionUrl_=function(a,b,c){(a=a.exec(b))?(a=a[1],-1==(c instanceof goog.string.Const?[goog.string.Const.unwrap(c)]:c.map(function(a){return goog.string.Const.unwrap(a)})).indexOf(a)&&(b=goog.html.SafeUrl.INNOCUOUS_STRING)):b=goog.html.SafeUrl.INNOCUOUS_STRING;return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};goog.html.SafeUrl.fromTrustedResourceUrl=function(a){return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(goog.html.TrustedResourceUrl.unwrap(a))};\ngoog.html.SAFE_URL_PATTERN_=/^(?:(?:https?|mailto|ftp):|[^:/?#]*(?:[/?#]|$))/i;goog.html.SafeUrl.SAFE_URL_PATTERN=goog.html.SAFE_URL_PATTERN_;goog.html.SafeUrl.sanitize=function(a){if(a instanceof goog.html.SafeUrl)return a;a=\"object\"==typeof a&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);goog.html.SAFE_URL_PATTERN_.test(a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeUrl.sanitizeAssertUnchanged=function(a,b){if(a instanceof goog.html.SafeUrl)return a;a=\"object\"==typeof a&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);if(b&&/^data:/i.test(a)&&(b=goog.html.SafeUrl.fromDataUrl(a),b.getTypedStringValue()==a))return b;goog.asserts.assert(goog.html.SAFE_URL_PATTERN_.test(a),\"%s does not match the safe URL pattern\",a)||(a=goog.html.SafeUrl.INNOCUOUS_STRING);return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeUrl.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse=function(a){return new goog.html.SafeUrl(goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_,a)};goog.html.SafeUrl.ABOUT_BLANK=goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(\"about:blank\");goog.html.SafeUrl.CONSTRUCTOR_TOKEN_PRIVATE_={};goog.html.SafeStyle=function(){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=\"\";this.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyle.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.SafeStyle.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyle.EMPTY;goog.asserts.assert(goog.string.internal.endsWith(a,\";\"),\"Last character of style string is not ';': \"+a);goog.asserts.assert(goog.string.internal.contains(a,\":\"),\"Style string must contain at least one ':', to specify a \\\"name: value\\\" pair: \"+a);return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(a)};\ngoog.html.SafeStyle.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleWrappedValue_};goog.DEBUG&&(goog.html.SafeStyle.prototype.toString=function(){return\"SafeStyle{\"+this.privateDoNotAccessOrElseSafeStyleWrappedValue_+\"}\"});\ngoog.html.SafeStyle.unwrap=function(a){if(a instanceof goog.html.SafeStyle&&a.constructor===goog.html.SafeStyle&&a.SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyle.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleWrappedValue_;goog.asserts.fail(\"expected object of type SafeStyle, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:SafeStyle\"};goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyle).initSecurityPrivateDoNotAccessOrElse_(a)};\ngoog.html.SafeStyle.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleWrappedValue_=a;return this};goog.html.SafeStyle.EMPTY=goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(\"\");goog.html.SafeStyle.INNOCUOUS_STRING=\"zClosurez\";\ngoog.html.SafeStyle.create=function(a){var b=\"\",c;for(c in a){if(!/^[-_a-zA-Z0-9]+$/.test(c))throw Error(\"Name allows only [-_a-zA-Z0-9], got: \"+c);var d=a[c];null!=d&&(d=Array.isArray(d)?goog.array.map(d,goog.html.SafeStyle.sanitizePropertyValue_).join(\" \"):goog.html.SafeStyle.sanitizePropertyValue_(d),b+=c+\":\"+d+\";\")}return b?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b):goog.html.SafeStyle.EMPTY};\ngoog.html.SafeStyle.sanitizePropertyValue_=function(a){if(a instanceof goog.html.SafeUrl)return'url(\"'+goog.html.SafeUrl.unwrap(a).replace(/</g,\"%3c\").replace(/[\\\\\"]/g,\"\\\\$&\")+'\")';a=a instanceof goog.string.Const?goog.string.Const.unwrap(a):goog.html.SafeStyle.sanitizePropertyValueString_(String(a));if(/[{;}]/.test(a))throw new goog.asserts.AssertionError(\"Value does not allow [{;}], got: %s.\",[a]);return a};\ngoog.html.SafeStyle.sanitizePropertyValueString_=function(a){var b=a.replace(goog.html.SafeStyle.FUNCTIONS_RE_,\"$1\").replace(goog.html.SafeStyle.FUNCTIONS_RE_,\"$1\").replace(goog.html.SafeStyle.URL_RE_,\"url\");if(goog.html.SafeStyle.VALUE_RE_.test(b)){if(goog.html.SafeStyle.COMMENT_RE_.test(a))return goog.asserts.fail(\"String value disallows comments, got: \"+a),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedQuotes_(a))return goog.asserts.fail(\"String value requires balanced quotes, got: \"+\na),goog.html.SafeStyle.INNOCUOUS_STRING;if(!goog.html.SafeStyle.hasBalancedSquareBrackets_(a))return goog.asserts.fail(\"String value requires balanced square brackets and one identifier per pair of brackets, got: \"+a),goog.html.SafeStyle.INNOCUOUS_STRING}else return goog.asserts.fail(\"String value allows only \"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+\" and simple functions, got: \"+a),goog.html.SafeStyle.INNOCUOUS_STRING;return goog.html.SafeStyle.sanitizeUrl_(a)};\ngoog.html.SafeStyle.hasBalancedQuotes_=function(a){for(var b=!0,c=!0,d=0;d<a.length;d++){var e=a.charAt(d);\"'\"==e&&c?b=!b:'\"'==e&&b&&(c=!c)}return b&&c};goog.html.SafeStyle.hasBalancedSquareBrackets_=function(a){for(var b=!0,c=/^[-_a-zA-Z0-9]$/,d=0;d<a.length;d++){var e=a.charAt(d);if(\"]\"==e){if(b)return!1;b=!0}else if(\"[\"==e){if(!b)return!1;b=!1}else if(!b&&!c.test(e))return!1}return b};goog.html.SafeStyle.VALUE_ALLOWED_CHARS_=\"[-,.\\\"'%_!# a-zA-Z0-9\\\\[\\\\]]\";\ngoog.html.SafeStyle.VALUE_RE_=new RegExp(\"^\"+goog.html.SafeStyle.VALUE_ALLOWED_CHARS_+\"+$\");goog.html.SafeStyle.URL_RE_=/\\b(url\\([ \\t\\n]*)('[ -&(-\\[\\]-~]*'|\"[ !#-\\[\\]-~]*\"|[!#-&*-\\[\\]-~]*)([ \\t\\n]*\\))/g;goog.html.SafeStyle.ALLOWED_FUNCTIONS_=\"calc cubic-bezier fit-content hsl hsla linear-gradient matrix minmax repeat rgb rgba (rotate|scale|translate)(X|Y|Z|3d)?\".split(\" \");\ngoog.html.SafeStyle.FUNCTIONS_RE_=new RegExp(\"\\\\b(\"+goog.html.SafeStyle.ALLOWED_FUNCTIONS_.join(\"|\")+\")\\\\([-+*/0-9a-z.%\\\\[\\\\], ]+\\\\)\",\"g\");goog.html.SafeStyle.COMMENT_RE_=/\\/\\*/;goog.html.SafeStyle.sanitizeUrl_=function(a){return a.replace(goog.html.SafeStyle.URL_RE_,function(a,c,d,e){var b=\"\";d=d.replace(/^(['\"])(.*)\\1$/,function(a,c,d){b=c;return d});a=goog.html.SafeUrl.sanitize(d).getTypedStringValue();return c+b+a+b+e})};\ngoog.html.SafeStyle.concat=function(a){var b=\"\",c=function(a){Array.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyle.unwrap(a)};goog.array.forEach(arguments,c);return b?goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b):goog.html.SafeStyle.EMPTY};goog.html.SafeStyleSheet=function(){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=\"\";this.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_};goog.html.SafeStyleSheet.prototype.implementsGoogStringTypedString=!0;goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};\ngoog.html.SafeStyleSheet.createRule=function(a,b){if(goog.string.internal.contains(a,\"<\"))throw Error(\"Selector does not allow '<', got: \"+a);var c=a.replace(/('|\")((?!\\1)[^\\r\\n\\f\\\\]|\\\\[\\s\\S])*\\1/g,\"\");if(!/^[-_a-zA-Z0-9#.:* ,>+~[\\]()=^$|]+$/.test(c))throw Error(\"Selector allows only [-_a-zA-Z0-9#.:* ,>+~[\\\\]()=^$|] and strings, got: \"+a);if(!goog.html.SafeStyleSheet.hasBalancedBrackets_(c))throw Error(\"() and [] in selector must be balanced, got: \"+a);b instanceof goog.html.SafeStyle||(b=goog.html.SafeStyle.create(b));\na=a+\"{\"+goog.html.SafeStyle.unwrap(b).replace(/</g,\"\\\\3C \")+\"}\";return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.hasBalancedBrackets_=function(a){for(var b={\"(\":\")\",\"[\":\"]\"},c=[],d=0;d<a.length;d++){var e=a[d];if(b[e])c.push(b[e]);else if(goog.object.contains(b,e)&&c.pop()!=e)return!1}return 0==c.length};\ngoog.html.SafeStyleSheet.concat=function(a){var b=\"\",c=function(a){Array.isArray(a)?goog.array.forEach(a,c):b+=goog.html.SafeStyleSheet.unwrap(a)};goog.array.forEach(arguments,c);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.SafeStyleSheet.fromConstant=function(a){a=goog.string.Const.unwrap(a);if(0===a.length)return goog.html.SafeStyleSheet.EMPTY;goog.asserts.assert(!goog.string.internal.contains(a,\"<\"),\"Forbidden '<' character in style sheet string: \"+a);return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(a)};goog.html.SafeStyleSheet.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_};\ngoog.DEBUG&&(goog.html.SafeStyleSheet.prototype.toString=function(){return\"SafeStyleSheet{\"+this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_+\"}\"});\ngoog.html.SafeStyleSheet.unwrap=function(a){if(a instanceof goog.html.SafeStyleSheet&&a.constructor===goog.html.SafeStyleSheet&&a.SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeStyleSheet.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_;goog.asserts.fail(\"expected object of type SafeStyleSheet, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:SafeStyleSheet\"};\ngoog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse=function(a){return(new goog.html.SafeStyleSheet).initSecurityPrivateDoNotAccessOrElse_(a)};goog.html.SafeStyleSheet.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a){this.privateDoNotAccessOrElseSafeStyleSheetWrappedValue_=a;return this};goog.html.SafeStyleSheet.EMPTY=goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(\"\");goog.labs={};goog.labs.userAgent={};goog.labs.userAgent.util={};goog.labs.userAgent.util.getNativeUserAgentString_=function(){var a=goog.labs.userAgent.util.getNavigator_();return a&&(a=a.userAgent)?a:\"\"};goog.labs.userAgent.util.getNavigator_=function(){return goog.global.navigator};goog.labs.userAgent.util.userAgent_=goog.labs.userAgent.util.getNativeUserAgentString_();goog.labs.userAgent.util.setUserAgent=function(a){goog.labs.userAgent.util.userAgent_=a||goog.labs.userAgent.util.getNativeUserAgentString_()};\ngoog.labs.userAgent.util.getUserAgent=function(){return goog.labs.userAgent.util.userAgent_};goog.labs.userAgent.util.matchUserAgent=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.contains(b,a)};goog.labs.userAgent.util.matchUserAgentIgnoreCase=function(a){var b=goog.labs.userAgent.util.getUserAgent();return goog.string.internal.caseInsensitiveContains(b,a)};\ngoog.labs.userAgent.util.extractVersionTuples=function(a){for(var b=/(\\w[\\w ]+)\\/([^\\s]+)\\s*(?:\\((.*?)\\))?/g,c=[],d;d=b.exec(a);)c.push([d[1],d[2],d[3]||void 0]);return c};goog.labs.userAgent.browser={};goog.labs.userAgent.browser.matchOpera_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Opera\")};goog.labs.userAgent.browser.matchIE_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Trident\")||goog.labs.userAgent.util.matchUserAgent(\"MSIE\")};goog.labs.userAgent.browser.matchEdgeHtml_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Edge\")};goog.labs.userAgent.browser.matchEdgeChromium_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Edg/\")};\ngoog.labs.userAgent.browser.matchOperaChromium_=function(){return goog.labs.userAgent.util.matchUserAgent(\"OPR\")};goog.labs.userAgent.browser.matchFirefox_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Firefox\")||goog.labs.userAgent.util.matchUserAgent(\"FxiOS\")};\ngoog.labs.userAgent.browser.matchSafari_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Safari\")&&!(goog.labs.userAgent.browser.matchChrome_()||goog.labs.userAgent.browser.matchCoast_()||goog.labs.userAgent.browser.matchOpera_()||goog.labs.userAgent.browser.matchEdgeHtml_()||goog.labs.userAgent.browser.matchEdgeChromium_()||goog.labs.userAgent.browser.matchOperaChromium_()||goog.labs.userAgent.browser.matchFirefox_()||goog.labs.userAgent.browser.isSilk()||goog.labs.userAgent.util.matchUserAgent(\"Android\"))};\ngoog.labs.userAgent.browser.matchCoast_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Coast\")};goog.labs.userAgent.browser.matchIosWebview_=function(){return(goog.labs.userAgent.util.matchUserAgent(\"iPad\")||goog.labs.userAgent.util.matchUserAgent(\"iPhone\"))&&!goog.labs.userAgent.browser.matchSafari_()&&!goog.labs.userAgent.browser.matchChrome_()&&!goog.labs.userAgent.browser.matchCoast_()&&!goog.labs.userAgent.browser.matchFirefox_()&&goog.labs.userAgent.util.matchUserAgent(\"AppleWebKit\")};\ngoog.labs.userAgent.browser.matchChrome_=function(){return(goog.labs.userAgent.util.matchUserAgent(\"Chrome\")||goog.labs.userAgent.util.matchUserAgent(\"CriOS\"))&&!goog.labs.userAgent.browser.matchEdgeHtml_()};goog.labs.userAgent.browser.matchAndroidBrowser_=function(){return goog.labs.userAgent.util.matchUserAgent(\"Android\")&&!(goog.labs.userAgent.browser.isChrome()||goog.labs.userAgent.browser.isFirefox()||goog.labs.userAgent.browser.isOpera()||goog.labs.userAgent.browser.isSilk())};\ngoog.labs.userAgent.browser.isOpera=goog.labs.userAgent.browser.matchOpera_;goog.labs.userAgent.browser.isIE=goog.labs.userAgent.browser.matchIE_;goog.labs.userAgent.browser.isEdge=goog.labs.userAgent.browser.matchEdgeHtml_;goog.labs.userAgent.browser.isEdgeChromium=goog.labs.userAgent.browser.matchEdgeChromium_;goog.labs.userAgent.browser.isOperaChromium=goog.labs.userAgent.browser.matchOperaChromium_;goog.labs.userAgent.browser.isFirefox=goog.labs.userAgent.browser.matchFirefox_;\ngoog.labs.userAgent.browser.isSafari=goog.labs.userAgent.browser.matchSafari_;goog.labs.userAgent.browser.isCoast=goog.labs.userAgent.browser.matchCoast_;goog.labs.userAgent.browser.isIosWebview=goog.labs.userAgent.browser.matchIosWebview_;goog.labs.userAgent.browser.isChrome=goog.labs.userAgent.browser.matchChrome_;goog.labs.userAgent.browser.isAndroidBrowser=goog.labs.userAgent.browser.matchAndroidBrowser_;goog.labs.userAgent.browser.isSilk=function(){return goog.labs.userAgent.util.matchUserAgent(\"Silk\")};\ngoog.labs.userAgent.browser.getVersion=function(){function a(a){a=goog.array.find(a,d);return c[a]||\"\"}var b=goog.labs.userAgent.util.getUserAgent();if(goog.labs.userAgent.browser.isIE())return goog.labs.userAgent.browser.getIEVersion_(b);b=goog.labs.userAgent.util.extractVersionTuples(b);var c={};goog.array.forEach(b,function(a){c[a[0]]=a[1]});var d=goog.partial(goog.object.containsKey,c);return goog.labs.userAgent.browser.isOpera()?a([\"Version\",\"Opera\"]):goog.labs.userAgent.browser.isEdge()?a([\"Edge\"]):\ngoog.labs.userAgent.browser.isEdgeChromium()?a([\"Edg\"]):goog.labs.userAgent.browser.isChrome()?a([\"Chrome\",\"CriOS\",\"HeadlessChrome\"]):(b=b[2])&&b[1]||\"\"};goog.labs.userAgent.browser.isVersionOrHigher=function(a){return 0<=goog.string.internal.compareVersions(goog.labs.userAgent.browser.getVersion(),a)};\ngoog.labs.userAgent.browser.getIEVersion_=function(a){var b=/rv: *([\\d\\.]*)/.exec(a);if(b&&b[1])return b[1];b=\"\";var c=/MSIE +([\\d\\.]+)/.exec(a);if(c&&c[1])if(a=/Trident\\/(\\d.\\d)/.exec(a),\"7.0\"==c[1])if(a&&a[1])switch(a[1]){case \"4.0\":b=\"8.0\";break;case \"5.0\":b=\"9.0\";break;case \"6.0\":b=\"10.0\";break;case \"7.0\":b=\"11.0\"}else b=\"7.0\";else b=c[1];return b};goog.html.SafeHtml=function(){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=\"\";this.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_=goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_;this.dir_=null};goog.html.SafeHtml.ENABLE_ERROR_MESSAGES=goog.DEBUG;goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE=!0;goog.html.SafeHtml.prototype.implementsGoogI18nBidiDirectionalString=!0;goog.html.SafeHtml.prototype.getDirection=function(){return this.dir_};\ngoog.html.SafeHtml.prototype.implementsGoogStringTypedString=!0;goog.html.SafeHtml.prototype.getTypedStringValue=function(){return this.privateDoNotAccessOrElseSafeHtmlWrappedValue_.toString()};goog.DEBUG&&(goog.html.SafeHtml.prototype.toString=function(){return\"SafeHtml{\"+this.privateDoNotAccessOrElseSafeHtmlWrappedValue_+\"}\"});goog.html.SafeHtml.unwrap=function(a){return goog.html.SafeHtml.unwrapTrustedHTML(a).toString()};\ngoog.html.SafeHtml.unwrapTrustedHTML=function(a){if(a instanceof goog.html.SafeHtml&&a.constructor===goog.html.SafeHtml&&a.SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_===goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_)return a.privateDoNotAccessOrElseSafeHtmlWrappedValue_;goog.asserts.fail(\"expected object of type SafeHtml, got '\"+a+\"' of type \"+goog.typeOf(a));return\"type_error:SafeHtml\"};\ngoog.html.SafeHtml.htmlEscape=function(a){if(a instanceof goog.html.SafeHtml)return a;var b=\"object\"==typeof a,c=null;b&&a.implementsGoogI18nBidiDirectionalString&&(c=a.getDirection());a=b&&a.implementsGoogStringTypedString?a.getTypedStringValue():String(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.htmlEscape(a),c)};\ngoog.html.SafeHtml.htmlEscapePreservingNewlines=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.newLineToBr(goog.html.SafeHtml.unwrap(a)),a.getDirection())};\ngoog.html.SafeHtml.htmlEscapePreservingNewlinesAndSpaces=function(a){if(a instanceof goog.html.SafeHtml)return a;a=goog.html.SafeHtml.htmlEscape(a);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(goog.string.internal.whitespaceEscape(goog.html.SafeHtml.unwrap(a)),a.getDirection())};goog.html.SafeHtml.from=goog.html.SafeHtml.htmlEscape;\ngoog.html.SafeHtml.comment=function(a){return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"\\x3c!--\"+goog.string.internal.htmlEscape(a)+\"--\\x3e\",null)};goog.html.SafeHtml.VALID_NAMES_IN_TAG_=/^[a-zA-Z0-9-]+$/;goog.html.SafeHtml.URL_ATTRIBUTES_={action:!0,cite:!0,data:!0,formaction:!0,href:!0,manifest:!0,poster:!0,src:!0};goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_={APPLET:!0,BASE:!0,EMBED:!0,IFRAME:!0,LINK:!0,MATH:!0,META:!0,OBJECT:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};\ngoog.html.SafeHtml.create=function(a,b,c){goog.html.SafeHtml.verifyTagName(String(a));return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(String(a),b,c)};\ngoog.html.SafeHtml.verifyTagName=function(a){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(a))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?\"Invalid tag name <\"+a+\">.\":\"\");if(a.toUpperCase()in goog.html.SafeHtml.NOT_ALLOWED_TAG_NAMES_)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?\"Tag name <\"+a+\"> is not allowed for SafeHtml.\":\"\");};\ngoog.html.SafeHtml.createIframe=function(a,b,c,d){a&&goog.html.TrustedResourceUrl.unwrap(a);var e={};e.src=a||null;e.srcdoc=b&&goog.html.SafeHtml.unwrap(b);a=goog.html.SafeHtml.combineAttributes(e,{sandbox:\"\"},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"iframe\",a,d)};\ngoog.html.SafeHtml.createSandboxIframe=function(a,b,c,d){if(!goog.html.SafeHtml.canUseSandboxIframe())throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?\"The browser does not support sandboxed iframes.\":\"\");var e={};e.src=a?goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a)):null;e.srcdoc=b||null;e.sandbox=\"\";a=goog.html.SafeHtml.combineAttributes(e,{},c);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"iframe\",a,d)};\ngoog.html.SafeHtml.canUseSandboxIframe=function(){return goog.global.HTMLIFrameElement&&\"sandbox\"in goog.global.HTMLIFrameElement.prototype};goog.html.SafeHtml.createScriptSrc=function(a,b){goog.html.TrustedResourceUrl.unwrap(a);a=goog.html.SafeHtml.combineAttributes({src:a},{},b);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"script\",a)};\ngoog.html.SafeHtml.createScript=function(a,b){for(var c in b){var d=c.toLowerCase();if(\"language\"==d||\"src\"==d||\"text\"==d||\"type\"==d)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot set \"'+d+'\" attribute':\"\");}c=\"\";a=goog.array.concat(a);for(d=0;d<a.length;d++)c+=goog.html.SafeScript.unwrap(a[d]);a=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,goog.i18n.bidi.Dir.NEUTRAL);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"script\",b,a)};\ngoog.html.SafeHtml.createStyle=function(a,b){b=goog.html.SafeHtml.combineAttributes({type:\"text/css\"},{},b);var c=\"\";a=goog.array.concat(a);for(var d=0;d<a.length;d++)c+=goog.html.SafeStyleSheet.unwrap(a[d]);a=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(c,goog.i18n.bidi.Dir.NEUTRAL);return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"style\",b,a)};\ngoog.html.SafeHtml.createMetaRefresh=function(a,b){a=goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitize(a));(goog.labs.userAgent.browser.isIE()||goog.labs.userAgent.browser.isEdge())&&goog.string.internal.contains(a,\";\")&&(a=\"'\"+a.replace(/'/g,\"%27\")+\"'\");return goog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse(\"meta\",{\"http-equiv\":\"refresh\",content:(b||0)+\"; url=\"+a})};\ngoog.html.SafeHtml.getAttrNameAndValue_=function(a,b,c){if(c instanceof goog.string.Const)c=goog.string.Const.unwrap(c);else if(\"style\"==b.toLowerCase())if(goog.html.SafeHtml.SUPPORT_STYLE_ATTRIBUTE)c=goog.html.SafeHtml.getStyleValue_(c);else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute \"style\" not supported.':\"\");else{if(/^on/i.test(b))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute \"'+b+'\" requires goog.string.Const value, \"'+c+'\" given.':\"\");if(b.toLowerCase()in\ngoog.html.SafeHtml.URL_ATTRIBUTES_)if(c instanceof goog.html.TrustedResourceUrl)c=goog.html.TrustedResourceUrl.unwrap(c);else if(c instanceof goog.html.SafeUrl)c=goog.html.SafeUrl.unwrap(c);else if(\"string\"===typeof c)c=goog.html.SafeUrl.sanitize(c).getTypedStringValue();else throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Attribute \"'+b+'\" on tag \"'+a+'\" requires goog.html.SafeUrl, goog.string.Const, or string, value \"'+c+'\" given.':\"\");}c.implementsGoogStringTypedString&&(c=c.getTypedStringValue());\ngoog.asserts.assert(\"string\"===typeof c||\"number\"===typeof c,\"String or number value expected, got \"+typeof c+\" with value: \"+c);return b+'=\"'+goog.string.internal.htmlEscape(String(c))+'\"'};goog.html.SafeHtml.getStyleValue_=function(a){if(!goog.isObject(a))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'The \"style\" attribute requires goog.html.SafeStyle or map of style properties, '+typeof a+\" given: \"+a:\"\");a instanceof goog.html.SafeStyle||(a=goog.html.SafeStyle.create(a));return goog.html.SafeStyle.unwrap(a)};\ngoog.html.SafeHtml.createWithDir=function(a,b,c,d){b=goog.html.SafeHtml.create(b,c,d);b.dir_=a;return b};\ngoog.html.SafeHtml.join=function(a,b){a=goog.html.SafeHtml.htmlEscape(a);var c=a.getDirection(),d=[],e=function(a){Array.isArray(a)?goog.array.forEach(a,e):(a=goog.html.SafeHtml.htmlEscape(a),d.push(goog.html.SafeHtml.unwrap(a)),a=a.getDirection(),c==goog.i18n.bidi.Dir.NEUTRAL?c=a:a!=goog.i18n.bidi.Dir.NEUTRAL&&c!=a&&(c=null))};goog.array.forEach(b,e);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(d.join(goog.html.SafeHtml.unwrap(a)),c)};\ngoog.html.SafeHtml.concat=function(a){return goog.html.SafeHtml.join(goog.html.SafeHtml.EMPTY,Array.prototype.slice.call(arguments))};goog.html.SafeHtml.concatWithDir=function(a,b){var c=goog.html.SafeHtml.concat(goog.array.slice(arguments,1));c.dir_=a;return c};goog.html.SafeHtml.TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_={};goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse=function(a,b){return(new goog.html.SafeHtml).initSecurityPrivateDoNotAccessOrElse_(a,b)};\ngoog.html.SafeHtml.prototype.initSecurityPrivateDoNotAccessOrElse_=function(a,b){this.privateDoNotAccessOrElseSafeHtmlWrappedValue_=goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY?goog.html.trustedtypes.PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY.createHTML(a):a;this.dir_=b;return this};\ngoog.html.SafeHtml.createSafeHtmlTagSecurityPrivateDoNotAccessOrElse=function(a,b,c){var d=null;var e=\"<\"+a+goog.html.SafeHtml.stringifyAttributes(a,b);null==c?c=[]:Array.isArray(c)||(c=[c]);goog.dom.tags.isVoidTag(a.toLowerCase())?(goog.asserts.assert(!c.length,\"Void tag <\"+a+\"> does not allow content.\"),e+=\">\"):(d=goog.html.SafeHtml.concat(c),e+=\">\"+goog.html.SafeHtml.unwrap(d)+\"</\"+a+\">\",d=d.getDirection());(a=b&&b.dir)&&(d=/^(ltr|rtl|auto)$/i.test(a)?goog.i18n.bidi.Dir.NEUTRAL:null);return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(e,\nd)};goog.html.SafeHtml.stringifyAttributes=function(a,b){var c=\"\";if(b)for(var d in b){if(!goog.html.SafeHtml.VALID_NAMES_IN_TAG_.test(d))throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Invalid attribute name \"'+d+'\".':\"\");var e=b[d];null!=e&&(c+=\" \"+goog.html.SafeHtml.getAttrNameAndValue_(a,d,e))}return c};\ngoog.html.SafeHtml.combineAttributes=function(a,b,c){var d={},e;for(e in a)goog.asserts.assert(e.toLowerCase()==e,\"Must be lower case\"),d[e]=a[e];for(e in b)goog.asserts.assert(e.toLowerCase()==e,\"Must be lower case\"),d[e]=b[e];if(c)for(e in c){var f=e.toLowerCase();if(f in a)throw Error(goog.html.SafeHtml.ENABLE_ERROR_MESSAGES?'Cannot override \"'+f+'\" attribute, got \"'+e+'\" with value \"'+c[e]+'\"':\"\");f in b&&delete d[f];d[e]=c[e]}return d};\ngoog.html.SafeHtml.DOCTYPE_HTML=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"<!DOCTYPE html>\",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.EMPTY=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"\",goog.i18n.bidi.Dir.NEUTRAL);goog.html.SafeHtml.BR=goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(\"<br>\",goog.i18n.bidi.Dir.NEUTRAL);goog.html.uncheckedconversions={};goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract=function(a,b,c){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.SafeHtml.createSafeHtmlSecurityPrivateDoNotAccessOrElse(b,c||null)};\ngoog.html.uncheckedconversions.safeScriptFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.SafeScript.createSafeScriptSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeStyleFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.SafeStyle.createSafeStyleSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeStyleSheetFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.SafeStyleSheet.createSafeStyleSheetSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.SafeUrl.createSafeUrlSecurityPrivateDoNotAccessOrElse(b)};\ngoog.html.uncheckedconversions.trustedResourceUrlFromStringKnownToSatisfyTypeContract=function(a,b){goog.asserts.assertString(goog.string.Const.unwrap(a),\"must provide justification\");goog.asserts.assert(!goog.string.internal.isEmptyOrWhitespace(goog.string.Const.unwrap(a)),\"must provide non-empty justification\");return goog.html.TrustedResourceUrl.createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse(b)};goog.dom.safe={};goog.dom.safe.InsertAdjacentHtmlPosition={AFTERBEGIN:\"afterbegin\",AFTEREND:\"afterend\",BEFOREBEGIN:\"beforebegin\",BEFOREEND:\"beforeend\"};goog.dom.safe.insertAdjacentHtml=function(a,b,c){a.insertAdjacentHTML(b,goog.html.SafeHtml.unwrapTrustedHTML(c))};goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_={MATH:!0,SCRIPT:!0,STYLE:!0,SVG:!0,TEMPLATE:!0};\ngoog.dom.safe.isInnerHtmlCleanupRecursive_=goog.functions.cacheReturnValue(function(){if(goog.DEBUG&&\"undefined\"===typeof document)return!1;var a=document.createElement(\"div\"),b=document.createElement(\"div\");b.appendChild(document.createElement(\"div\"));a.appendChild(b);if(goog.DEBUG&&!a.firstChild)return!1;b=a.firstChild.firstChild;a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(goog.html.SafeHtml.EMPTY);return!b.parentElement});\ngoog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse=function(a,b){if(goog.dom.safe.isInnerHtmlCleanupRecursive_())for(;a.lastChild;)a.removeChild(a.lastChild);a.innerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};\ngoog.dom.safe.setInnerHtml=function(a,b){if(goog.asserts.ENABLE_ASSERTS){var c=a.tagName.toUpperCase();if(goog.dom.safe.SET_INNER_HTML_DISALLOWED_TAGS_[c])throw Error(\"goog.dom.safe.setInnerHtml cannot be used to set content of \"+a.tagName+\".\");}goog.dom.safe.unsafeSetInnerHtmlDoNotUseOrElse(a,b)};goog.dom.safe.setOuterHtml=function(a,b){a.outerHTML=goog.html.SafeHtml.unwrapTrustedHTML(b)};\ngoog.dom.safe.setFormElementAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLFormElement(a).action=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setButtonFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLButtonElement(a).formAction=goog.html.SafeUrl.unwrap(b)};\ngoog.dom.safe.setInputFormAction=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);goog.dom.asserts.assertIsHTMLInputElement(a).formAction=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setStyle=function(a,b){a.style.cssText=goog.html.SafeStyle.unwrap(b)};goog.dom.safe.documentWrite=function(a,b){a.write(goog.html.SafeHtml.unwrapTrustedHTML(b))};\ngoog.dom.safe.setAnchorHref=function(a,b){goog.dom.asserts.assertIsHTMLAnchorElement(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setImageSrc=function(a,b){goog.dom.asserts.assertIsHTMLImageElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:image\\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};\ngoog.dom.safe.setAudioSrc=function(a,b){goog.dom.asserts.assertIsHTMLAudioElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:audio\\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};goog.dom.safe.setVideoSrc=function(a,b){goog.dom.asserts.assertIsHTMLVideoElement(a);if(!(b instanceof goog.html.SafeUrl)){var c=/^data:video\\//i.test(b);b=goog.html.SafeUrl.sanitizeAssertUnchanged(b,c)}a.src=goog.html.SafeUrl.unwrap(b)};\ngoog.dom.safe.setEmbedSrc=function(a,b){goog.dom.asserts.assertIsHTMLEmbedElement(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setFrameSrc=function(a,b){goog.dom.asserts.assertIsHTMLFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};goog.dom.safe.setIframeSrc=function(a,b){goog.dom.asserts.assertIsHTMLIFrameElement(a);a.src=goog.html.TrustedResourceUrl.unwrap(b)};\ngoog.dom.safe.setIframeSrcdoc=function(a,b){goog.dom.asserts.assertIsHTMLIFrameElement(a);a.srcdoc=goog.html.SafeHtml.unwrapTrustedHTML(b)};\ngoog.dom.safe.setLinkHrefAndRel=function(a,b,c){goog.dom.asserts.assertIsHTMLLinkElement(a);a.rel=c;goog.string.internal.caseInsensitiveContains(c,\"stylesheet\")?(goog.asserts.assert(b instanceof goog.html.TrustedResourceUrl,'URL must be TrustedResourceUrl because \"rel\" contains \"stylesheet\"'),a.href=goog.html.TrustedResourceUrl.unwrap(b)):a.href=b instanceof goog.html.TrustedResourceUrl?goog.html.TrustedResourceUrl.unwrap(b):b instanceof goog.html.SafeUrl?goog.html.SafeUrl.unwrap(b):goog.html.SafeUrl.unwrap(goog.html.SafeUrl.sanitizeAssertUnchanged(b))};\ngoog.dom.safe.setObjectData=function(a,b){goog.dom.asserts.assertIsHTMLObjectElement(a);a.data=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b)};goog.dom.safe.setScriptSrc=function(a,b){goog.dom.asserts.assertIsHTMLScriptElement(a);a.src=goog.html.TrustedResourceUrl.unwrapTrustedScriptURL(b);(b=goog.getScriptNonce())&&a.setAttribute(\"nonce\",b)};\ngoog.dom.safe.setScriptContent=function(a,b){goog.dom.asserts.assertIsHTMLScriptElement(a);a.text=goog.html.SafeScript.unwrapTrustedScript(b);(b=goog.getScriptNonce())&&a.setAttribute(\"nonce\",b)};goog.dom.safe.setLocationHref=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.href=goog.html.SafeUrl.unwrap(b)};\ngoog.dom.safe.assignLocation=function(a,b){goog.dom.asserts.assertIsLocation(a);b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.assign(goog.html.SafeUrl.unwrap(b))};goog.dom.safe.replaceLocation=function(a,b){b=b instanceof goog.html.SafeUrl?b:goog.html.SafeUrl.sanitizeAssertUnchanged(b);a.replace(goog.html.SafeUrl.unwrap(b))};\ngoog.dom.safe.openInWindow=function(a,b,c,d,e){a=a instanceof goog.html.SafeUrl?a:goog.html.SafeUrl.sanitizeAssertUnchanged(a);b=b||goog.global;c=c instanceof goog.string.Const?goog.string.Const.unwrap(c):c||\"\";return b.open(goog.html.SafeUrl.unwrap(a),c,d,e)};goog.dom.safe.parseFromStringHtml=function(a,b){return goog.dom.safe.parseFromString(a,b,\"text/html\")};goog.dom.safe.parseFromString=function(a,b,c){return a.parseFromString(goog.html.SafeHtml.unwrapTrustedHTML(b),c)};\ngoog.dom.safe.createImageFromBlob=function(a){if(!/^image\\/.*/g.test(a.type))throw Error(\"goog.dom.safe.createImageFromBlob only accepts MIME type image/.*.\");var b=goog.global.URL.createObjectURL(a);a=new goog.global.Image;a.onload=function(){goog.global.URL.revokeObjectURL(b)};goog.dom.safe.setImageSrc(a,goog.html.uncheckedconversions.safeUrlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\"Image blob URL.\"),b));return a};goog.string.DETECT_DOUBLE_ESCAPING=!1;goog.string.FORCE_NON_DOM_HTML_UNESCAPING=!1;goog.string.Unicode={NBSP:\"\\u00a0\"};goog.string.startsWith=goog.string.internal.startsWith;goog.string.endsWith=goog.string.internal.endsWith;goog.string.caseInsensitiveStartsWith=goog.string.internal.caseInsensitiveStartsWith;goog.string.caseInsensitiveEndsWith=goog.string.internal.caseInsensitiveEndsWith;goog.string.caseInsensitiveEquals=goog.string.internal.caseInsensitiveEquals;\ngoog.string.subs=function(a,b){for(var c=a.split(\"%s\"),d=\"\",e=Array.prototype.slice.call(arguments,1);e.length&&1<c.length;)d+=c.shift()+e.shift();return d+c.join(\"%s\")};goog.string.collapseWhitespace=function(a){return a.replace(/[\\s\\xa0]+/g,\" \").replace(/^\\s+|\\s+$/g,\"\")};goog.string.isEmptyOrWhitespace=goog.string.internal.isEmptyOrWhitespace;goog.string.isEmptyString=function(a){return 0==a.length};goog.string.isEmpty=goog.string.isEmptyOrWhitespace;goog.string.isEmptyOrWhitespaceSafe=function(a){return goog.string.isEmptyOrWhitespace(goog.string.makeSafe(a))};\ngoog.string.isEmptySafe=goog.string.isEmptyOrWhitespaceSafe;goog.string.isBreakingWhitespace=function(a){return!/[^\\t\\n\\r ]/.test(a)};goog.string.isAlpha=function(a){return!/[^a-zA-Z]/.test(a)};goog.string.isNumeric=function(a){return!/[^0-9]/.test(a)};goog.string.isAlphaNumeric=function(a){return!/[^a-zA-Z0-9]/.test(a)};goog.string.isSpace=function(a){return\" \"==a};goog.string.isUnicodeChar=function(a){return 1==a.length&&\" \"<=a&&\"~\">=a||\"\\u0080\"<=a&&\"\\ufffd\">=a};\ngoog.string.stripNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)+/g,\" \")};goog.string.canonicalizeNewlines=function(a){return a.replace(/(\\r\\n|\\r|\\n)/g,\"\\n\")};goog.string.normalizeWhitespace=function(a){return a.replace(/\\xa0|\\s/g,\" \")};goog.string.normalizeSpaces=function(a){return a.replace(/\\xa0|[ \\t]+/g,\" \")};goog.string.collapseBreakingSpaces=function(a){return a.replace(/[\\t\\r\\n ]+/g,\" \").replace(/^[\\t\\r\\n ]+|[\\t\\r\\n ]+$/g,\"\")};goog.string.trim=goog.string.internal.trim;\ngoog.string.trimLeft=function(a){return a.replace(/^[\\s\\xa0]+/,\"\")};goog.string.trimRight=function(a){return a.replace(/[\\s\\xa0]+$/,\"\")};goog.string.caseInsensitiveCompare=goog.string.internal.caseInsensitiveCompare;\ngoog.string.numberAwareCompare_=function(a,b,c){if(a==b)return 0;if(!a)return-1;if(!b)return 1;for(var d=a.toLowerCase().match(c),e=b.toLowerCase().match(c),f=Math.min(d.length,e.length),g=0;g<f;g++){c=d[g];var h=e[g];if(c!=h)return a=parseInt(c,10),!isNaN(a)&&(b=parseInt(h,10),!isNaN(b)&&a-b)?a-b:c<h?-1:1}return d.length!=e.length?d.length-e.length:a<b?-1:1};goog.string.intAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\D+/g)};\ngoog.string.floatAwareCompare=function(a,b){return goog.string.numberAwareCompare_(a,b,/\\d+|\\.\\d+|\\D+/g)};goog.string.numerateCompare=goog.string.floatAwareCompare;goog.string.urlEncode=function(a){return encodeURIComponent(String(a))};goog.string.urlDecode=function(a){return decodeURIComponent(a.replace(/\\+/g,\" \"))};goog.string.newLineToBr=goog.string.internal.newLineToBr;\ngoog.string.htmlEscape=function(a,b){a=goog.string.internal.htmlEscape(a,b);goog.string.DETECT_DOUBLE_ESCAPING&&(a=a.replace(goog.string.E_RE_,\"&#101;\"));return a};goog.string.E_RE_=/e/g;goog.string.unescapeEntities=function(a){return goog.string.contains(a,\"&\")?!goog.string.FORCE_NON_DOM_HTML_UNESCAPING&&\"document\"in goog.global?goog.string.unescapeEntitiesUsingDom_(a):goog.string.unescapePureXmlEntities_(a):a};\ngoog.string.unescapeEntitiesWithDocument=function(a,b){return goog.string.contains(a,\"&\")?goog.string.unescapeEntitiesUsingDom_(a,b):a};\ngoog.string.unescapeEntitiesUsingDom_=function(a,b){var c={\"&amp;\":\"&\",\"&lt;\":\"<\",\"&gt;\":\">\",\"&quot;\":'\"'};var d=b?b.createElement(\"div\"):goog.global.document.createElement(\"div\");return a.replace(goog.string.HTML_ENTITY_PATTERN_,function(a,b){var e=c[a];if(e)return e;\"#\"==b.charAt(0)&&(b=Number(\"0\"+b.substr(1)),isNaN(b)||(e=String.fromCharCode(b)));e||(goog.dom.safe.setInnerHtml(d,goog.html.uncheckedconversions.safeHtmlFromStringKnownToSatisfyTypeContract(goog.string.Const.from(\"Single HTML entity.\"),\na+\" \")),e=d.firstChild.nodeValue.slice(0,-1));return c[a]=e})};goog.string.unescapePureXmlEntities_=function(a){return a.replace(/&([^;]+);/g,function(a,c){switch(c){case \"amp\":return\"&\";case \"lt\":return\"<\";case \"gt\":return\">\";case \"quot\":return'\"';default:return\"#\"!=c.charAt(0)||(c=Number(\"0\"+c.substr(1)),isNaN(c))?a:String.fromCharCode(c)}})};goog.string.HTML_ENTITY_PATTERN_=/&([^;\\s<&]+);?/g;goog.string.whitespaceEscape=function(a,b){return goog.string.newLineToBr(a.replace(/ /g,\" &#160;\"),b)};\ngoog.string.preserveSpaces=function(a){return a.replace(/(^|[\\n ]) /g,\"$1\"+goog.string.Unicode.NBSP)};goog.string.stripQuotes=function(a,b){for(var c=b.length,d=0;d<c;d++){var e=1==c?b:b.charAt(d);if(a.charAt(0)==e&&a.charAt(a.length-1)==e)return a.substring(1,a.length-1)}return a};goog.string.truncate=function(a,b,c){c&&(a=goog.string.unescapeEntities(a));a.length>b&&(a=a.substring(0,b-3)+\"...\");c&&(a=goog.string.htmlEscape(a));return a};\ngoog.string.truncateMiddle=function(a,b,c,d){c&&(a=goog.string.unescapeEntities(a));if(d&&a.length>b){d>b&&(d=b);var e=a.length-d;a=a.substring(0,b-d)+\"...\"+a.substring(e)}else a.length>b&&(d=Math.floor(b/2),e=a.length-d,a=a.substring(0,d+b%2)+\"...\"+a.substring(e));c&&(a=goog.string.htmlEscape(a));return a};goog.string.specialEscapeChars_={\"\\x00\":\"\\\\0\",\"\\b\":\"\\\\b\",\"\\f\":\"\\\\f\",\"\\n\":\"\\\\n\",\"\\r\":\"\\\\r\",\"\\t\":\"\\\\t\",\"\\x0B\":\"\\\\x0B\",'\"':'\\\\\"',\"\\\\\":\"\\\\\\\\\",\"<\":\"\\\\u003C\"};goog.string.jsEscapeCache_={\"'\":\"\\\\'\"};\ngoog.string.quote=function(a){a=String(a);for(var b=['\"'],c=0;c<a.length;c++){var d=a.charAt(c),e=d.charCodeAt(0);b[c+1]=goog.string.specialEscapeChars_[d]||(31<e&&127>e?d:goog.string.escapeChar(d))}b.push('\"');return b.join(\"\")};goog.string.escapeString=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=goog.string.escapeChar(a.charAt(c));return b.join(\"\")};\ngoog.string.escapeChar=function(a){if(a in goog.string.jsEscapeCache_)return goog.string.jsEscapeCache_[a];if(a in goog.string.specialEscapeChars_)return goog.string.jsEscapeCache_[a]=goog.string.specialEscapeChars_[a];var b=a.charCodeAt(0);if(31<b&&127>b)var c=a;else{if(256>b){if(c=\"\\\\x\",16>b||256<b)c+=\"0\"}else c=\"\\\\u\",4096>b&&(c+=\"0\");c+=b.toString(16).toUpperCase()}return goog.string.jsEscapeCache_[a]=c};goog.string.contains=goog.string.internal.contains;goog.string.caseInsensitiveContains=goog.string.internal.caseInsensitiveContains;\ngoog.string.countOf=function(a,b){return a&&b?a.split(b).length-1:0};goog.string.removeAt=function(a,b,c){var d=a;0<=b&&b<a.length&&0<c&&(d=a.substr(0,b)+a.substr(b+c,a.length-b-c));return d};goog.string.remove=function(a,b){return a.replace(b,\"\")};goog.string.removeAll=function(a,b){b=new RegExp(goog.string.regExpEscape(b),\"g\");return a.replace(b,\"\")};goog.string.replaceAll=function(a,b,c){b=new RegExp(goog.string.regExpEscape(b),\"g\");return a.replace(b,c.replace(/\\$/g,\"$$$$\"))};\ngoog.string.regExpEscape=function(a){return String(a).replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\").replace(/\\x08/g,\"\\\\x08\")};goog.string.repeat=String.prototype.repeat?function(a,b){return a.repeat(b)}:function(a,b){return Array(b+1).join(a)};goog.string.padNumber=function(a,b,c){a=void 0!==c?a.toFixed(c):String(a);c=a.indexOf(\".\");-1==c&&(c=a.length);return goog.string.repeat(\"0\",Math.max(0,b-c))+a};goog.string.makeSafe=function(a){return null==a?\"\":String(a)};\ngoog.string.buildString=function(a){return Array.prototype.join.call(arguments,\"\")};goog.string.getRandomString=function(){return Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^goog.now()).toString(36)};goog.string.compareVersions=goog.string.internal.compareVersions;goog.string.hashCode=function(a){for(var b=0,c=0;c<a.length;++c)b=31*b+a.charCodeAt(c)>>>0;return b};goog.string.uniqueStringCounter_=2147483648*Math.random()|0;\ngoog.string.createUniqueString=function(){return\"goog_\"+goog.string.uniqueStringCounter_++};goog.string.toNumber=function(a){var b=Number(a);return 0==b&&goog.string.isEmptyOrWhitespace(a)?NaN:b};goog.string.isLowerCamelCase=function(a){return/^[a-z]+([A-Z][a-z]*)*$/.test(a)};goog.string.isUpperCamelCase=function(a){return/^([A-Z][a-z]*)+$/.test(a)};goog.string.toCamelCase=function(a){return String(a).replace(/\\-([a-z])/g,function(a,c){return c.toUpperCase()})};\ngoog.string.toSelectorCase=function(a){return String(a).replace(/([A-Z])/g,\"-$1\").toLowerCase()};goog.string.toTitleCase=function(a,b){b=\"string\"===typeof b?goog.string.regExpEscape(b):\"\\\\s\";return a.replace(new RegExp(\"(^\"+(b?\"|[\"+b+\"]+\":\"\")+\")([a-z])\",\"g\"),function(a,b,e){return b+e.toUpperCase()})};goog.string.capitalize=function(a){return String(a.charAt(0)).toUpperCase()+String(a.substr(1)).toLowerCase()};\ngoog.string.parseInt=function(a){isFinite(a)&&(a=String(a));return\"string\"===typeof a?/^\\s*-?0x/i.test(a)?parseInt(a,16):parseInt(a,10):NaN};goog.string.splitLimit=function(a,b,c){a=a.split(b);for(var d=[];0<c&&a.length;)d.push(a.shift()),c--;a.length&&d.push(a.join(b));return d};goog.string.lastComponent=function(a,b){if(b)\"string\"==typeof b&&(b=[b]);else return a;for(var c=-1,d=0;d<b.length;d++)if(\"\"!=b[d]){var e=a.lastIndexOf(b[d]);e>c&&(c=e)}return-1==c?a:a.slice(c+1)};\ngoog.string.editDistance=function(a,b){var c=[],d=[];if(a==b)return 0;if(!a.length||!b.length)return Math.max(a.length,b.length);for(var e=0;e<b.length+1;e++)c[e]=e;for(e=0;e<a.length;e++){d[0]=e+1;for(var f=0;f<b.length;f++)d[f+1]=Math.min(d[f]+1,c[f+1]+1,c[f]+Number(a[e]!=b[f]));for(f=0;f<c.length;f++)c[f]=d[f]}return d[b.length]};goog.labs.userAgent.engine={};goog.labs.userAgent.engine.isPresto=function(){return goog.labs.userAgent.util.matchUserAgent(\"Presto\")};goog.labs.userAgent.engine.isTrident=function(){return goog.labs.userAgent.util.matchUserAgent(\"Trident\")||goog.labs.userAgent.util.matchUserAgent(\"MSIE\")};goog.labs.userAgent.engine.isEdge=function(){return goog.labs.userAgent.util.matchUserAgent(\"Edge\")};\ngoog.labs.userAgent.engine.isWebKit=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase(\"WebKit\")&&!goog.labs.userAgent.engine.isEdge()};goog.labs.userAgent.engine.isGecko=function(){return goog.labs.userAgent.util.matchUserAgent(\"Gecko\")&&!goog.labs.userAgent.engine.isWebKit()&&!goog.labs.userAgent.engine.isTrident()&&!goog.labs.userAgent.engine.isEdge()};\ngoog.labs.userAgent.engine.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent();if(a){a=goog.labs.userAgent.util.extractVersionTuples(a);var b=goog.labs.userAgent.engine.getEngineTuple_(a);if(b)return\"Gecko\"==b[0]?goog.labs.userAgent.engine.getVersionForKey_(a,\"Firefox\"):b[1];a=a[0];var c;if(a&&(c=a[2])&&(c=/Trident\\/([^\\s;]+)/.exec(c)))return c[1]}return\"\"};\ngoog.labs.userAgent.engine.getEngineTuple_=function(a){if(!goog.labs.userAgent.engine.isEdge())return a[1];for(var b=0;b<a.length;b++){var c=a[b];if(\"Edge\"==c[0])return c}};goog.labs.userAgent.engine.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.engine.getVersion(),a)};goog.labs.userAgent.engine.getVersionForKey_=function(a,b){return(a=goog.array.find(a,function(a){return b==a[0]}))&&a[1]||\"\"};goog.labs.userAgent.platform={};goog.labs.userAgent.platform.isAndroid=function(){return goog.labs.userAgent.util.matchUserAgent(\"Android\")};goog.labs.userAgent.platform.isIpod=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPod\")};goog.labs.userAgent.platform.isIphone=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPhone\")&&!goog.labs.userAgent.util.matchUserAgent(\"iPod\")&&!goog.labs.userAgent.util.matchUserAgent(\"iPad\")};goog.labs.userAgent.platform.isIpad=function(){return goog.labs.userAgent.util.matchUserAgent(\"iPad\")};\ngoog.labs.userAgent.platform.isIos=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpad()||goog.labs.userAgent.platform.isIpod()};goog.labs.userAgent.platform.isMacintosh=function(){return goog.labs.userAgent.util.matchUserAgent(\"Macintosh\")};goog.labs.userAgent.platform.isLinux=function(){return goog.labs.userAgent.util.matchUserAgent(\"Linux\")};goog.labs.userAgent.platform.isWindows=function(){return goog.labs.userAgent.util.matchUserAgent(\"Windows\")};\ngoog.labs.userAgent.platform.isChromeOS=function(){return goog.labs.userAgent.util.matchUserAgent(\"CrOS\")};goog.labs.userAgent.platform.isChromecast=function(){return goog.labs.userAgent.util.matchUserAgent(\"CrKey\")};goog.labs.userAgent.platform.isKaiOS=function(){return goog.labs.userAgent.util.matchUserAgentIgnoreCase(\"KaiOS\")};\ngoog.labs.userAgent.platform.getVersion=function(){var a=goog.labs.userAgent.util.getUserAgent(),b=\"\";goog.labs.userAgent.platform.isWindows()?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:\"0.0\"):goog.labs.userAgent.platform.isIos()?(b=/(?:iPhone|iPod|iPad|CPU)\\s+OS\\s+(\\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,\".\")):goog.labs.userAgent.platform.isMacintosh()?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,\".\"):\"10\"):goog.labs.userAgent.platform.isKaiOS()?(b=/(?:KaiOS)\\/(\\S+)/i,\nb=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isAndroid()?(b=/Android\\s+([^\\);]+)(\\)|;)/,b=(a=b.exec(a))&&a[1]):goog.labs.userAgent.platform.isChromeOS()&&(b=/(?:CrOS\\s+(?:i686|x86_64)\\s+([0-9.]+))/,b=(a=b.exec(a))&&a[1]);return b||\"\"};goog.labs.userAgent.platform.isVersionOrHigher=function(a){return 0<=goog.string.compareVersions(goog.labs.userAgent.platform.getVersion(),a)};goog.reflect={};goog.reflect.object=function(a,b){return b};goog.reflect.objectProperty=function(a,b){return a};goog.reflect.sinkValue=function(a){goog.reflect.sinkValue[\" \"](a);return a};goog.reflect.sinkValue[\" \"]=goog.nullFunction;goog.reflect.canAccessProperty=function(a,b){try{return goog.reflect.sinkValue(a[b]),!0}catch(c){}return!1};goog.reflect.cache=function(a,b,c,d){d=d?d(b):b;return Object.prototype.hasOwnProperty.call(a,d)?a[d]:a[d]=c(b)};goog.userAgent={};goog.userAgent.ASSUME_IE=!1;goog.userAgent.ASSUME_EDGE=!1;goog.userAgent.ASSUME_GECKO=!1;goog.userAgent.ASSUME_WEBKIT=!1;goog.userAgent.ASSUME_MOBILE_WEBKIT=!1;goog.userAgent.ASSUME_OPERA=!1;goog.userAgent.ASSUME_ANY_VERSION=!1;goog.userAgent.BROWSER_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_GECKO||goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_OPERA;goog.userAgent.getUserAgentString=function(){return goog.labs.userAgent.util.getUserAgent()};\ngoog.userAgent.getNavigatorTyped=function(){return goog.global.navigator||null};goog.userAgent.getNavigator=function(){return goog.userAgent.getNavigatorTyped()};goog.userAgent.OPERA=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_OPERA:goog.labs.userAgent.browser.isOpera();goog.userAgent.IE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_IE:goog.labs.userAgent.browser.isIE();goog.userAgent.EDGE=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_EDGE:goog.labs.userAgent.engine.isEdge();\ngoog.userAgent.EDGE_OR_IE=goog.userAgent.EDGE||goog.userAgent.IE;goog.userAgent.GECKO=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_GECKO:goog.labs.userAgent.engine.isGecko();goog.userAgent.WEBKIT=goog.userAgent.BROWSER_KNOWN_?goog.userAgent.ASSUME_WEBKIT||goog.userAgent.ASSUME_MOBILE_WEBKIT:goog.labs.userAgent.engine.isWebKit();goog.userAgent.isMobile_=function(){return goog.userAgent.WEBKIT&&goog.labs.userAgent.util.matchUserAgent(\"Mobile\")};\ngoog.userAgent.MOBILE=goog.userAgent.ASSUME_MOBILE_WEBKIT||goog.userAgent.isMobile_();goog.userAgent.SAFARI=goog.userAgent.WEBKIT;goog.userAgent.determinePlatform_=function(){var a=goog.userAgent.getNavigatorTyped();return a&&a.platform||\"\"};goog.userAgent.PLATFORM=goog.userAgent.determinePlatform_();goog.userAgent.ASSUME_MAC=!1;goog.userAgent.ASSUME_WINDOWS=!1;goog.userAgent.ASSUME_LINUX=!1;goog.userAgent.ASSUME_X11=!1;goog.userAgent.ASSUME_ANDROID=!1;goog.userAgent.ASSUME_IPHONE=!1;\ngoog.userAgent.ASSUME_IPAD=!1;goog.userAgent.ASSUME_IPOD=!1;goog.userAgent.ASSUME_KAIOS=!1;goog.userAgent.PLATFORM_KNOWN_=goog.userAgent.ASSUME_MAC||goog.userAgent.ASSUME_WINDOWS||goog.userAgent.ASSUME_LINUX||goog.userAgent.ASSUME_X11||goog.userAgent.ASSUME_ANDROID||goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD;goog.userAgent.MAC=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_MAC:goog.labs.userAgent.platform.isMacintosh();\ngoog.userAgent.WINDOWS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_WINDOWS:goog.labs.userAgent.platform.isWindows();goog.userAgent.isLegacyLinux_=function(){return goog.labs.userAgent.platform.isLinux()||goog.labs.userAgent.platform.isChromeOS()};goog.userAgent.LINUX=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_LINUX:goog.userAgent.isLegacyLinux_();goog.userAgent.isX11_=function(){var a=goog.userAgent.getNavigatorTyped();return!!a&&goog.string.contains(a.appVersion||\"\",\"X11\")};\ngoog.userAgent.X11=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_X11:goog.userAgent.isX11_();goog.userAgent.ANDROID=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_ANDROID:goog.labs.userAgent.platform.isAndroid();goog.userAgent.IPHONE=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE:goog.labs.userAgent.platform.isIphone();goog.userAgent.IPAD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();\ngoog.userAgent.IPOD=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIpod();goog.userAgent.IOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_IPHONE||goog.userAgent.ASSUME_IPAD||goog.userAgent.ASSUME_IPOD:goog.labs.userAgent.platform.isIos();goog.userAgent.KAIOS=goog.userAgent.PLATFORM_KNOWN_?goog.userAgent.ASSUME_KAIOS:goog.labs.userAgent.platform.isKaiOS();\ngoog.userAgent.determineVersion_=function(){var a=\"\",b=goog.userAgent.getVersionRegexResult_();b&&(a=b?b[1]:\"\");return goog.userAgent.IE&&(b=goog.userAgent.getDocumentMode_(),null!=b&&b>parseFloat(a))?String(b):a};\ngoog.userAgent.getVersionRegexResult_=function(){var a=goog.userAgent.getUserAgentString();if(goog.userAgent.GECKO)return/rv:([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.EDGE)return/Edge\\/([\\d\\.]+)/.exec(a);if(goog.userAgent.IE)return/\\b(?:MSIE|rv)[: ]([^\\);]+)(\\)|;)/.exec(a);if(goog.userAgent.WEBKIT)return/WebKit\\/(\\S+)/.exec(a);if(goog.userAgent.OPERA)return/(?:Version)[ \\/]?(\\S+)/.exec(a)};goog.userAgent.getDocumentMode_=function(){var a=goog.global.document;return a?a.documentMode:void 0};\ngoog.userAgent.VERSION=goog.userAgent.determineVersion_();goog.userAgent.compare=function(a,b){return goog.string.compareVersions(a,b)};goog.userAgent.isVersionOrHigherCache_={};goog.userAgent.isVersionOrHigher=function(a){return goog.userAgent.ASSUME_ANY_VERSION||goog.reflect.cache(goog.userAgent.isVersionOrHigherCache_,a,function(){return 0<=goog.string.compareVersions(goog.userAgent.VERSION,a)})};goog.userAgent.isVersion=goog.userAgent.isVersionOrHigher;\ngoog.userAgent.isDocumentModeOrHigher=function(a){return Number(goog.userAgent.DOCUMENT_MODE)>=a};goog.userAgent.isDocumentMode=goog.userAgent.isDocumentModeOrHigher;goog.userAgent.DOCUMENT_MODE=function(){if(goog.global.document&&goog.userAgent.IE){var a=goog.userAgent.getDocumentMode_();return a?a:parseInt(goog.userAgent.VERSION,10)||void 0}}();goog.userAgent.product={};goog.userAgent.product.ASSUME_FIREFOX=!1;goog.userAgent.product.ASSUME_IPHONE=!1;goog.userAgent.product.ASSUME_IPAD=!1;goog.userAgent.product.ASSUME_ANDROID=!1;goog.userAgent.product.ASSUME_CHROME=!1;goog.userAgent.product.ASSUME_SAFARI=!1;\ngoog.userAgent.product.PRODUCT_KNOWN_=goog.userAgent.ASSUME_IE||goog.userAgent.ASSUME_EDGE||goog.userAgent.ASSUME_OPERA||goog.userAgent.product.ASSUME_FIREFOX||goog.userAgent.product.ASSUME_IPHONE||goog.userAgent.product.ASSUME_IPAD||goog.userAgent.product.ASSUME_ANDROID||goog.userAgent.product.ASSUME_CHROME||goog.userAgent.product.ASSUME_SAFARI;goog.userAgent.product.OPERA=goog.userAgent.OPERA;goog.userAgent.product.IE=goog.userAgent.IE;goog.userAgent.product.EDGE=goog.userAgent.EDGE;\ngoog.userAgent.product.FIREFOX=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_FIREFOX:goog.labs.userAgent.browser.isFirefox();goog.userAgent.product.isIphoneOrIpod_=function(){return goog.labs.userAgent.platform.isIphone()||goog.labs.userAgent.platform.isIpod()};goog.userAgent.product.IPHONE=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPHONE:goog.userAgent.product.isIphoneOrIpod_();\ngoog.userAgent.product.IPAD=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_IPAD:goog.labs.userAgent.platform.isIpad();goog.userAgent.product.ANDROID=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_ANDROID:goog.labs.userAgent.browser.isAndroidBrowser();goog.userAgent.product.CHROME=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_CHROME:goog.labs.userAgent.browser.isChrome();\ngoog.userAgent.product.isSafariDesktop_=function(){return goog.labs.userAgent.browser.isSafari()&&!goog.labs.userAgent.platform.isIos()};goog.userAgent.product.SAFARI=goog.userAgent.product.PRODUCT_KNOWN_?goog.userAgent.product.ASSUME_SAFARI:goog.userAgent.product.isSafariDesktop_();goog.crypt.base64={};goog.crypt.base64.DEFAULT_ALPHABET_COMMON_=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";goog.crypt.base64.ENCODED_VALS=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+\"+/=\";goog.crypt.base64.ENCODED_VALS_WEBSAFE=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_+\"-_.\";goog.crypt.base64.Alphabet={DEFAULT:0,NO_PADDING:1,WEBSAFE:2,WEBSAFE_DOT_PADDING:3,WEBSAFE_NO_PADDING:4};goog.crypt.base64.paddingChars_=\"=.\";\ngoog.crypt.base64.isPadding_=function(a){return goog.string.contains(goog.crypt.base64.paddingChars_,a)};goog.crypt.base64.byteToCharMaps_={};goog.crypt.base64.charToByteMap_=null;goog.crypt.base64.ASSUME_NATIVE_SUPPORT_=goog.userAgent.GECKO||goog.userAgent.WEBKIT&&!goog.userAgent.product.SAFARI||goog.userAgent.OPERA;goog.crypt.base64.HAS_NATIVE_ENCODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||\"function\"==typeof goog.global.btoa;\ngoog.crypt.base64.HAS_NATIVE_DECODE_=goog.crypt.base64.ASSUME_NATIVE_SUPPORT_||!goog.userAgent.product.SAFARI&&!goog.userAgent.IE&&\"function\"==typeof goog.global.atob;\ngoog.crypt.base64.encodeByteArray=function(a,b){goog.asserts.assert(goog.isArrayLike(a),\"encodeByteArray takes an array as a parameter\");void 0===b&&(b=goog.crypt.base64.Alphabet.DEFAULT);goog.crypt.base64.init_();b=goog.crypt.base64.byteToCharMaps_[b];for(var c=[],d=0;d<a.length;d+=3){var e=a[d],f=d+1<a.length,g=f?a[d+1]:0,h=d+2<a.length,k=h?a[d+2]:0,l=e>>2;e=(e&3)<<4|g>>4;g=(g&15)<<2|k>>6;k&=63;h||(k=64,f||(g=64));c.push(b[l],b[e],b[g]||\"\",b[k]||\"\")}return c.join(\"\")};\ngoog.crypt.base64.encodeString=function(a,b){return goog.crypt.base64.HAS_NATIVE_ENCODE_&&!b?goog.global.btoa(a):goog.crypt.base64.encodeByteArray(goog.crypt.stringToByteArray(a),b)};goog.crypt.base64.decodeString=function(a,b){if(goog.crypt.base64.HAS_NATIVE_DECODE_&&!b)return goog.global.atob(a);var c=\"\";goog.crypt.base64.decodeStringInternal_(a,function(a){c+=String.fromCharCode(a)});return c};\ngoog.crypt.base64.decodeStringToByteArray=function(a,b){var c=[];goog.crypt.base64.decodeStringInternal_(a,function(a){c.push(a)});return c};\ngoog.crypt.base64.decodeStringToUint8Array=function(a){goog.asserts.assert(!goog.userAgent.IE||goog.userAgent.isVersionOrHigher(\"10\"),\"Browser does not support typed arrays\");var b=a.length,c=3*b/4;c%3?c=Math.floor(c):goog.crypt.base64.isPadding_(a[b-1])&&(c=goog.crypt.base64.isPadding_(a[b-2])?c-2:c-1);var d=new Uint8Array(c),e=0;goog.crypt.base64.decodeStringInternal_(a,function(a){d[e++]=a});return d.subarray(0,e)};\ngoog.crypt.base64.decodeStringInternal_=function(a,b){function c(b){for(;d<a.length;){var c=a.charAt(d++),e=goog.crypt.base64.charToByteMap_[c];if(null!=e)return e;if(!goog.string.isEmptyOrWhitespace(c))throw Error(\"Unknown base64 encoding at char: \"+c);}return b}goog.crypt.base64.init_();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}};\ngoog.crypt.base64.init_=function(){if(!goog.crypt.base64.charToByteMap_){goog.crypt.base64.charToByteMap_={};for(var a=goog.crypt.base64.DEFAULT_ALPHABET_COMMON_.split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;5>c;c++){var d=a.concat(b[c].split(\"\"));goog.crypt.base64.byteToCharMaps_[c]=d;for(var e=0;e<d.length;e++){var f=d[e],g=goog.crypt.base64.charToByteMap_[f];void 0===g?goog.crypt.base64.charToByteMap_[f]=e:goog.asserts.assert(g===e)}}}};jspb.utils={};jspb.utils.split64Low=0;jspb.utils.split64High=0;jspb.utils.splitUint64=function(a){var b=a>>>0;a=Math.floor((a-b)/jspb.BinaryConstants.TWO_TO_32)>>>0;jspb.utils.split64Low=b;jspb.utils.split64High=a};jspb.utils.splitInt64=function(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/jspb.BinaryConstants.TWO_TO_32);a>>>=0;b&&(a=~a>>>0,c=(~c>>>0)+1,4294967295<c&&(c=0,a++,4294967295<a&&(a=0)));jspb.utils.split64Low=c;jspb.utils.split64High=a};\njspb.utils.splitZigzag64=function(a){var b=0>a;a=2*Math.abs(a);jspb.utils.splitUint64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;b&&(0==a?0==c?c=a=4294967295:(c--,a=4294967295):a--);jspb.utils.split64Low=a;jspb.utils.split64High=c};\njspb.utils.splitFloat32=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)0<1/a?(jspb.utils.split64High=0,jspb.utils.split64Low=0):(jspb.utils.split64High=0,jspb.utils.split64Low=2147483648);else if(isNaN(a))jspb.utils.split64High=0,jspb.utils.split64Low=2147483647;else if(a>jspb.BinaryConstants.FLOAT32_MAX)jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|2139095040)>>>0;else if(a<jspb.BinaryConstants.FLOAT32_MIN)a=Math.round(a/Math.pow(2,-149)),jspb.utils.split64High=0,jspb.utils.split64Low=(b<<31|\na)>>>0;else{var c=Math.floor(Math.log(a)/Math.LN2);a*=Math.pow(2,-c);a=Math.round(a*jspb.BinaryConstants.TWO_TO_23);16777216<=a&&++c;jspb.utils.split64High=0;jspb.utils.split64Low=(b<<31|c+127<<23|a&8388607)>>>0}};\njspb.utils.splitFloat64=function(a){var b=0>a?1:0;a=b?-a:a;if(0===a)jspb.utils.split64High=0<1/a?0:2147483648,jspb.utils.split64Low=0;else if(isNaN(a))jspb.utils.split64High=2147483647,jspb.utils.split64Low=4294967295;else if(a>jspb.BinaryConstants.FLOAT64_MAX)jspb.utils.split64High=(b<<31|2146435072)>>>0,jspb.utils.split64Low=0;else if(a<jspb.BinaryConstants.FLOAT64_MIN){var c=a/Math.pow(2,-1074);a=c/jspb.BinaryConstants.TWO_TO_32;jspb.utils.split64High=(b<<31|a)>>>0;jspb.utils.split64Low=c>>>0}else{c=\na;var d=0;if(2<=c)for(;2<=c&&1023>d;)d++,c/=2;else for(;1>c&&-1022<d;)c*=2,d--;c=a*Math.pow(2,-d);a=c*jspb.BinaryConstants.TWO_TO_20&1048575;c=c*jspb.BinaryConstants.TWO_TO_52>>>0;jspb.utils.split64High=(b<<31|d+1023<<20|a)>>>0;jspb.utils.split64Low=c}};\njspb.utils.splitHash64=function(a){var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=a.charCodeAt(4),g=a.charCodeAt(5),h=a.charCodeAt(6);a=a.charCodeAt(7);jspb.utils.split64Low=b+(c<<8)+(d<<16)+(e<<24)>>>0;jspb.utils.split64High=f+(g<<8)+(h<<16)+(a<<24)>>>0};jspb.utils.joinUint64=function(a,b){return b*jspb.BinaryConstants.TWO_TO_32+(a>>>0)};\njspb.utils.joinInt64=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=jspb.utils.joinUint64(a,b);return c?-a:a};jspb.utils.toZigzag64=function(a,b,c){var d=b>>31;return c(a<<1^d,(b<<1|a>>>31)^d)};jspb.utils.joinZigzag64=function(a,b){return jspb.utils.fromZigzag64(a,b,jspb.utils.joinInt64)};jspb.utils.fromZigzag64=function(a,b,c){var d=-(a&1);return c((a>>>1|b<<31)^d,b>>>1^d)};\njspb.utils.joinFloat32=function(a,b){b=2*(a>>31)+1;var c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*a:b*Math.pow(2,c-150)*(a+Math.pow(2,23))};jspb.utils.joinFloat64=function(a,b){var c=2*(b>>31)+1,d=b>>>20&2047;a=jspb.BinaryConstants.TWO_TO_32*(b&1048575)+a;return 2047==d?a?NaN:Infinity*c:0==d?c*Math.pow(2,-1074)*a:c*Math.pow(2,d-1075)*(a+jspb.BinaryConstants.TWO_TO_52)};\njspb.utils.joinHash64=function(a,b){return String.fromCharCode(a>>>0&255,a>>>8&255,a>>>16&255,a>>>24&255,b>>>0&255,b>>>8&255,b>>>16&255,b>>>24&255)};jspb.utils.DIGITS=\"0123456789abcdef\".split(\"\");jspb.utils.ZERO_CHAR_CODE_=48;jspb.utils.A_CHAR_CODE_=97;\njspb.utils.joinUnsignedDecimalString=function(a,b){function c(a,b){a=a?String(a):\"\";return b?\"0000000\".slice(a.length)+a:a}if(2097151>=b)return\"\"+jspb.utils.joinUint64(a,b);var d=(a>>>24|b<<8)>>>0&16777215;b=b>>16&65535;a=(a&16777215)+6777216*d+6710656*b;d+=8147497*b;b*=2;1E7<=a&&(d+=Math.floor(a/1E7),a%=1E7);1E7<=d&&(b+=Math.floor(d/1E7),d%=1E7);return c(b,0)+c(d,b)+c(a,1)};\njspb.utils.joinSignedDecimalString=function(a,b){var c=b&2147483648;c&&(a=~a+1>>>0,b=~b+(0==a?1:0)>>>0);a=jspb.utils.joinUnsignedDecimalString(a,b);return c?\"-\"+a:a};jspb.utils.hash64ToDecimalString=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinSignedDecimalString(a,c):jspb.utils.joinUnsignedDecimalString(a,c)};\njspb.utils.hash64ArrayToDecimalStrings=function(a,b){for(var c=Array(a.length),d=0;d<a.length;d++)c[d]=jspb.utils.hash64ToDecimalString(a[d],b);return c};\njspb.utils.decimalStringToHash64=function(a){function b(a,b){for(var c=0;8>c&&(1!==a||0<b);c++)b=a*e[c]+b,e[c]=b&255,b>>>=8}function c(){for(var a=0;8>a;a++)e[a]=~e[a]&255}jspb.asserts.assert(0<a.length);var d=!1;\"-\"===a[0]&&(d=!0,a=a.slice(1));for(var e=[0,0,0,0,0,0,0,0],f=0;f<a.length;f++)b(10,a.charCodeAt(f)-jspb.utils.ZERO_CHAR_CODE_);d&&(c(),b(1,1));return goog.crypt.byteArrayToString(e)};jspb.utils.splitDecimalString=function(a){jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a))};\njspb.utils.toHexDigit_=function(a){return String.fromCharCode(10>a?jspb.utils.ZERO_CHAR_CODE_+a:jspb.utils.A_CHAR_CODE_-10+a)};jspb.utils.fromHexCharCode_=function(a){return a>=jspb.utils.A_CHAR_CODE_?a-jspb.utils.A_CHAR_CODE_+10:a-jspb.utils.ZERO_CHAR_CODE_};jspb.utils.hash64ToHexString=function(a){var b=Array(18);b[0]=\"0\";b[1]=\"x\";for(var c=0;8>c;c++){var d=a.charCodeAt(7-c);b[2*c+2]=jspb.utils.toHexDigit_(d>>4);b[2*c+3]=jspb.utils.toHexDigit_(d&15)}return b.join(\"\")};\njspb.utils.hexStringToHash64=function(a){a=a.toLowerCase();jspb.asserts.assert(18==a.length);jspb.asserts.assert(\"0\"==a[0]);jspb.asserts.assert(\"x\"==a[1]);for(var b=\"\",c=0;8>c;c++){var d=jspb.utils.fromHexCharCode_(a.charCodeAt(2*c+2)),e=jspb.utils.fromHexCharCode_(a.charCodeAt(2*c+3));b=String.fromCharCode(16*d+e)+b}return b};\njspb.utils.hash64ToNumber=function(a,b){jspb.utils.splitHash64(a);a=jspb.utils.split64Low;var c=jspb.utils.split64High;return b?jspb.utils.joinInt64(a,c):jspb.utils.joinUint64(a,c)};jspb.utils.numberToHash64=function(a){jspb.utils.splitInt64(a);return jspb.utils.joinHash64(jspb.utils.split64Low,jspb.utils.split64High)};jspb.utils.countVarints=function(a,b,c){for(var d=0,e=b;e<c;e++)d+=a[e]>>7;return c-b-d};\njspb.utils.countVarintFields=function(a,b,c,d){var e=0;d=8*d+jspb.BinaryConstants.WireType.VARINT;if(128>d)for(;b<c&&a[b++]==d;)for(e++;;){var f=a[b++];if(0==(f&128))break}else for(;b<c;){for(f=d;128<f;){if(a[b]!=(f&127|128))return e;b++;f>>=7}if(a[b++]!=f)break;for(e++;f=a[b++],0!=(f&128););}return e};jspb.utils.countFixedFields_=function(a,b,c,d,e){var f=0;if(128>d)for(;b<c&&a[b++]==d;)f++,b+=e;else for(;b<c;){for(var g=d;128<g;){if(a[b++]!=(g&127|128))return f;g>>=7}if(a[b++]!=g)break;f++;b+=e}return f};\njspb.utils.countFixed32Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED32,4)};jspb.utils.countFixed64Fields=function(a,b,c,d){return jspb.utils.countFixedFields_(a,b,c,8*d+jspb.BinaryConstants.WireType.FIXED64,8)};\njspb.utils.countDelimitedFields=function(a,b,c,d){var e=0;for(d=8*d+jspb.BinaryConstants.WireType.DELIMITED;b<c;){for(var f=d;128<f;){if(a[b++]!=(f&127|128))return e;f>>=7}if(a[b++]!=f)break;e++;for(var g=0,h=1;f=a[b++],g+=(f&127)*h,h*=128,0!=(f&128););b+=g}return e};jspb.utils.debugBytesToTextFormat=function(a){var b='\"';if(a){a=jspb.utils.byteSourceToUint8Array(a);for(var c=0;c<a.length;c++)b+=\"\\\\x\",16>a[c]&&(b+=\"0\"),b+=a[c].toString(16)}return b+'\"'};\njspb.utils.debugScalarToTextFormat=function(a){return\"string\"===typeof a?goog.string.quote(a):a.toString()};jspb.utils.stringToByteArray=function(a){for(var b=new Uint8Array(a.length),c=0;c<a.length;c++){var d=a.charCodeAt(c);if(255<d)throw Error(\"Conversion error: string contains codepoint outside of byte range\");b[c]=d}return b};\njspb.utils.byteSourceToUint8Array=function(a){if(a.constructor===Uint8Array)return a;if(a.constructor===ArrayBuffer||a.constructor===Array)return new Uint8Array(a);if(a.constructor===String)return goog.crypt.base64.decodeStringToUint8Array(a);if(a instanceof Uint8Array)return new Uint8Array(a.buffer,a.byteOffset,a.byteLength);jspb.asserts.fail(\"Type not convertible to Uint8Array.\");return new Uint8Array(0)};jspb.BinaryDecoder=function(a,b,c){this.bytes_=null;this.cursor_=this.end_=this.start_=0;this.error_=!1;a&&this.setBlock(a,b,c)};jspb.BinaryDecoder.instanceCache_=[];jspb.BinaryDecoder.alloc=function(a,b,c){if(jspb.BinaryDecoder.instanceCache_.length){var d=jspb.BinaryDecoder.instanceCache_.pop();a&&d.setBlock(a,b,c);return d}return new jspb.BinaryDecoder(a,b,c)};jspb.BinaryDecoder.prototype.free=function(){this.clear();100>jspb.BinaryDecoder.instanceCache_.length&&jspb.BinaryDecoder.instanceCache_.push(this)};\njspb.BinaryDecoder.prototype.clone=function(){return jspb.BinaryDecoder.alloc(this.bytes_,this.start_,this.end_-this.start_)};jspb.BinaryDecoder.prototype.clear=function(){this.bytes_=null;this.cursor_=this.end_=this.start_=0;this.error_=!1};jspb.BinaryDecoder.prototype.getBuffer=function(){return this.bytes_};\njspb.BinaryDecoder.prototype.setBlock=function(a,b,c){this.bytes_=jspb.utils.byteSourceToUint8Array(a);this.start_=void 0!==b?b:0;this.end_=void 0!==c?this.start_+c:this.bytes_.length;this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getEnd=function(){return this.end_};jspb.BinaryDecoder.prototype.setEnd=function(a){this.end_=a};jspb.BinaryDecoder.prototype.reset=function(){this.cursor_=this.start_};jspb.BinaryDecoder.prototype.getCursor=function(){return this.cursor_};\njspb.BinaryDecoder.prototype.setCursor=function(a){this.cursor_=a};jspb.BinaryDecoder.prototype.advance=function(a){this.cursor_+=a;jspb.asserts.assert(this.cursor_<=this.end_)};jspb.BinaryDecoder.prototype.atEnd=function(){return this.cursor_==this.end_};jspb.BinaryDecoder.prototype.pastEnd=function(){return this.cursor_>this.end_};jspb.BinaryDecoder.prototype.getError=function(){return this.error_||0>this.cursor_||this.cursor_>this.end_};\njspb.BinaryDecoder.prototype.readSplitVarint64=function(a){for(var b=128,c=0,d=0,e=0;4>e&&128<=b;e++)b=this.bytes_[this.cursor_++],c|=(b&127)<<7*e;128<=b&&(b=this.bytes_[this.cursor_++],c|=(b&127)<<28,d|=(b&127)>>4);if(128<=b)for(e=0;5>e&&128<=b;e++)b=this.bytes_[this.cursor_++],d|=(b&127)<<7*e+3;if(128>b)return a(c>>>0,d>>>0);jspb.asserts.fail(\"Failed to read varint, encoding is invalid.\");this.error_=!0};\njspb.BinaryDecoder.prototype.readSplitZigzagVarint64=function(a){return this.readSplitVarint64(function(b,c){return jspb.utils.fromZigzag64(b,c,a)})};jspb.BinaryDecoder.prototype.readSplitFixed64=function(a){var b=this.bytes_,c=this.cursor_;this.cursor_+=8;for(var d=0,e=0,f=c+7;f>=c;f--)d=d<<8|b[f],e=e<<8|b[f+4];return a(d,e)};jspb.BinaryDecoder.prototype.skipVarint=function(){for(;this.bytes_[this.cursor_]&128;)this.cursor_++;this.cursor_++};\njspb.BinaryDecoder.prototype.unskipVarint=function(a){for(;128<a;)this.cursor_--,a>>>=7;this.cursor_--};\njspb.BinaryDecoder.prototype.readUnsignedVarint32=function(){var a=this.bytes_;var b=a[this.cursor_+0];var c=b&127;if(128>b)return this.cursor_+=1,jspb.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+1];c|=(b&127)<<7;if(128>b)return this.cursor_+=2,jspb.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+2];c|=(b&127)<<14;if(128>b)return this.cursor_+=3,jspb.asserts.assert(this.cursor_<=this.end_),c;b=a[this.cursor_+3];c|=(b&127)<<21;if(128>b)return this.cursor_+=4,jspb.asserts.assert(this.cursor_<=\nthis.end_),c;b=a[this.cursor_+4];c|=(b&15)<<28;if(128>b)return this.cursor_+=5,jspb.asserts.assert(this.cursor_<=this.end_),c>>>0;this.cursor_+=5;128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&128<=a[this.cursor_++]&&jspb.asserts.assert(!1);jspb.asserts.assert(this.cursor_<=this.end_);return c};jspb.BinaryDecoder.prototype.readSignedVarint32=function(){return~~this.readUnsignedVarint32()};jspb.BinaryDecoder.prototype.readUnsignedVarint32String=function(){return this.readUnsignedVarint32().toString()};\njspb.BinaryDecoder.prototype.readSignedVarint32String=function(){return this.readSignedVarint32().toString()};jspb.BinaryDecoder.prototype.readZigzagVarint32=function(){var a=this.readUnsignedVarint32();return a>>>1^-(a&1)};jspb.BinaryDecoder.prototype.readUnsignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinUint64)};jspb.BinaryDecoder.prototype.readUnsignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinUnsignedDecimalString)};\njspb.BinaryDecoder.prototype.readSignedVarint64=function(){return this.readSplitVarint64(jspb.utils.joinInt64)};jspb.BinaryDecoder.prototype.readSignedVarint64String=function(){return this.readSplitVarint64(jspb.utils.joinSignedDecimalString)};jspb.BinaryDecoder.prototype.readZigzagVarint64=function(){return this.readSplitVarint64(jspb.utils.joinZigzag64)};jspb.BinaryDecoder.prototype.readZigzagVarintHash64=function(){return this.readSplitZigzagVarint64(jspb.utils.joinHash64)};\njspb.BinaryDecoder.prototype.readZigzagVarint64String=function(){return this.readSplitZigzagVarint64(jspb.utils.joinSignedDecimalString)};jspb.BinaryDecoder.prototype.readUint8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;jspb.asserts.assert(this.cursor_<=this.end_);return a};jspb.BinaryDecoder.prototype.readUint16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;jspb.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8};\njspb.BinaryDecoder.prototype.readUint32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;jspb.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8|c<<16|d<<24)>>>0};jspb.BinaryDecoder.prototype.readUint64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUint64(a,b)};\njspb.BinaryDecoder.prototype.readUint64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinUnsignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readInt8=function(){var a=this.bytes_[this.cursor_+0];this.cursor_+=1;jspb.asserts.assert(this.cursor_<=this.end_);return a<<24>>24};\njspb.BinaryDecoder.prototype.readInt16=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1];this.cursor_+=2;jspb.asserts.assert(this.cursor_<=this.end_);return(a<<0|b<<8)<<16>>16};jspb.BinaryDecoder.prototype.readInt32=function(){var a=this.bytes_[this.cursor_+0],b=this.bytes_[this.cursor_+1],c=this.bytes_[this.cursor_+2],d=this.bytes_[this.cursor_+3];this.cursor_+=4;jspb.asserts.assert(this.cursor_<=this.end_);return a<<0|b<<8|c<<16|d<<24};\njspb.BinaryDecoder.prototype.readInt64=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinInt64(a,b)};jspb.BinaryDecoder.prototype.readInt64String=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinSignedDecimalString(a,b)};jspb.BinaryDecoder.prototype.readFloat=function(){var a=this.readUint32();return jspb.utils.joinFloat32(a,0)};\njspb.BinaryDecoder.prototype.readDouble=function(){var a=this.readUint32(),b=this.readUint32();return jspb.utils.joinFloat64(a,b)};jspb.BinaryDecoder.prototype.readBool=function(){return!!this.bytes_[this.cursor_++]};jspb.BinaryDecoder.prototype.readEnum=function(){return this.readSignedVarint32()};\njspb.BinaryDecoder.prototype.readString=function(a){var b=this.bytes_,c=this.cursor_;a=c+a;for(var d=[],e=\"\";c<a;){var f=b[c++];if(128>f)d.push(f);else if(192>f)continue;else if(224>f){var g=b[c++];d.push((f&31)<<6|g&63)}else if(240>f){g=b[c++];var h=b[c++];d.push((f&15)<<12|(g&63)<<6|h&63)}else if(248>f){g=b[c++];h=b[c++];var k=b[c++];f=(f&7)<<18|(g&63)<<12|(h&63)<<6|k&63;f-=65536;d.push((f>>10&1023)+55296,(f&1023)+56320)}8192<=d.length&&(e+=String.fromCharCode.apply(null,d),d.length=0)}e+=goog.crypt.byteArrayToString(d);\nthis.cursor_=c;return e};jspb.BinaryDecoder.prototype.readStringWithLength=function(){var a=this.readUnsignedVarint32();return this.readString(a)};jspb.BinaryDecoder.prototype.readBytes=function(a){if(0>a||this.cursor_+a>this.bytes_.length)return this.error_=!0,jspb.asserts.fail(\"Invalid byte length!\"),new Uint8Array(0);var b=this.bytes_.subarray(this.cursor_,this.cursor_+a);this.cursor_+=a;jspb.asserts.assert(this.cursor_<=this.end_);return b};jspb.BinaryDecoder.prototype.readVarintHash64=function(){return this.readSplitVarint64(jspb.utils.joinHash64)};\njspb.BinaryDecoder.prototype.readFixedHash64=function(){var a=this.bytes_,b=this.cursor_,c=a[b+0],d=a[b+1],e=a[b+2],f=a[b+3],g=a[b+4],h=a[b+5],k=a[b+6];a=a[b+7];this.cursor_+=8;return String.fromCharCode(c,d,e,f,g,h,k,a)};jspb.BinaryReader=function(a,b,c){this.decoder_=jspb.BinaryDecoder.alloc(a,b,c);this.fieldCursor_=this.decoder_.getCursor();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null};jspb.BinaryReader.instanceCache_=[];\njspb.BinaryReader.alloc=function(a,b,c){if(jspb.BinaryReader.instanceCache_.length){var d=jspb.BinaryReader.instanceCache_.pop();a&&d.decoder_.setBlock(a,b,c);return d}return new jspb.BinaryReader(a,b,c)};jspb.BinaryReader.prototype.alloc=jspb.BinaryReader.alloc;\njspb.BinaryReader.prototype.free=function(){this.decoder_.clear();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID;this.error_=!1;this.readCallbacks_=null;100>jspb.BinaryReader.instanceCache_.length&&jspb.BinaryReader.instanceCache_.push(this)};jspb.BinaryReader.prototype.getFieldCursor=function(){return this.fieldCursor_};jspb.BinaryReader.prototype.getCursor=function(){return this.decoder_.getCursor()};\njspb.BinaryReader.prototype.getBuffer=function(){return this.decoder_.getBuffer()};jspb.BinaryReader.prototype.getFieldNumber=function(){return this.nextField_};goog.exportProperty(jspb.BinaryReader.prototype,\"getFieldNumber\",jspb.BinaryReader.prototype.getFieldNumber);jspb.BinaryReader.prototype.getWireType=function(){return this.nextWireType_};jspb.BinaryReader.prototype.isDelimited=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"isDelimited\",jspb.BinaryReader.prototype.isDelimited);jspb.BinaryReader.prototype.isEndGroup=function(){return this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP};goog.exportProperty(jspb.BinaryReader.prototype,\"isEndGroup\",jspb.BinaryReader.prototype.isEndGroup);jspb.BinaryReader.prototype.getError=function(){return this.error_||this.decoder_.getError()};\njspb.BinaryReader.prototype.setBlock=function(a,b,c){this.decoder_.setBlock(a,b,c);this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.reset=function(){this.decoder_.reset();this.nextField_=jspb.BinaryConstants.INVALID_FIELD_NUMBER;this.nextWireType_=jspb.BinaryConstants.WireType.INVALID};jspb.BinaryReader.prototype.advance=function(a){this.decoder_.advance(a)};\njspb.BinaryReader.prototype.nextField=function(){if(this.decoder_.atEnd())return!1;if(this.getError())return jspb.asserts.fail(\"Decoder hit an error\"),!1;this.fieldCursor_=this.decoder_.getCursor();var a=this.decoder_.readUnsignedVarint32(),b=a>>>3;a&=7;if(a!=jspb.BinaryConstants.WireType.VARINT&&a!=jspb.BinaryConstants.WireType.FIXED32&&a!=jspb.BinaryConstants.WireType.FIXED64&&a!=jspb.BinaryConstants.WireType.DELIMITED&&a!=jspb.BinaryConstants.WireType.START_GROUP&&a!=jspb.BinaryConstants.WireType.END_GROUP)return jspb.asserts.fail(\"Invalid wire type: %s (at position %s)\",\na,this.fieldCursor_),this.error_=!0,!1;this.nextField_=b;this.nextWireType_=a;return!0};goog.exportProperty(jspb.BinaryReader.prototype,\"nextField\",jspb.BinaryReader.prototype.nextField);jspb.BinaryReader.prototype.unskipHeader=function(){this.decoder_.unskipVarint(this.nextField_<<3|this.nextWireType_)};jspb.BinaryReader.prototype.skipMatchingFields=function(){var a=this.nextField_;for(this.unskipHeader();this.nextField()&&this.getFieldNumber()==a;)this.skipField();this.decoder_.atEnd()||this.unskipHeader()};\njspb.BinaryReader.prototype.skipVarintField=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.VARINT?(jspb.asserts.fail(\"Invalid wire type for skipVarintField\"),this.skipField()):this.decoder_.skipVarint()};jspb.BinaryReader.prototype.skipDelimitedField=function(){if(this.nextWireType_!=jspb.BinaryConstants.WireType.DELIMITED)jspb.asserts.fail(\"Invalid wire type for skipDelimitedField\"),this.skipField();else{var a=this.decoder_.readUnsignedVarint32();this.decoder_.advance(a)}};\njspb.BinaryReader.prototype.skipFixed32Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED32?(jspb.asserts.fail(\"Invalid wire type for skipFixed32Field\"),this.skipField()):this.decoder_.advance(4)};jspb.BinaryReader.prototype.skipFixed64Field=function(){this.nextWireType_!=jspb.BinaryConstants.WireType.FIXED64?(jspb.asserts.fail(\"Invalid wire type for skipFixed64Field\"),this.skipField()):this.decoder_.advance(8)};\njspb.BinaryReader.prototype.skipGroup=function(){var a=this.nextField_;do{if(!this.nextField()){jspb.asserts.fail(\"Unmatched start-group tag: stream EOF\");this.error_=!0;break}if(this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP){this.nextField_!=a&&(jspb.asserts.fail(\"Unmatched end-group tag\"),this.error_=!0);break}this.skipField()}while(1)};\njspb.BinaryReader.prototype.skipField=function(){switch(this.nextWireType_){case jspb.BinaryConstants.WireType.VARINT:this.skipVarintField();break;case jspb.BinaryConstants.WireType.FIXED64:this.skipFixed64Field();break;case jspb.BinaryConstants.WireType.DELIMITED:this.skipDelimitedField();break;case jspb.BinaryConstants.WireType.FIXED32:this.skipFixed32Field();break;case jspb.BinaryConstants.WireType.START_GROUP:this.skipGroup();break;default:jspb.asserts.fail(\"Invalid wire encoding for field.\")}};\njspb.BinaryReader.prototype.registerReadCallback=function(a,b){null===this.readCallbacks_&&(this.readCallbacks_={});jspb.asserts.assert(!this.readCallbacks_[a]);this.readCallbacks_[a]=b};jspb.BinaryReader.prototype.runReadCallback=function(a){jspb.asserts.assert(null!==this.readCallbacks_);a=this.readCallbacks_[a];jspb.asserts.assert(a);return a(this)};\njspb.BinaryReader.prototype.readAny=function(a){this.nextWireType_=jspb.BinaryConstants.FieldTypeToWireType(a);var b=jspb.BinaryConstants.FieldType;switch(a){case b.DOUBLE:return this.readDouble();case b.FLOAT:return this.readFloat();case b.INT64:return this.readInt64();case b.UINT64:return this.readUint64();case b.INT32:return this.readInt32();case b.FIXED64:return this.readFixed64();case b.FIXED32:return this.readFixed32();case b.BOOL:return this.readBool();case b.STRING:return this.readString();\ncase b.GROUP:jspb.asserts.fail(\"Group field type not supported in readAny()\");case b.MESSAGE:jspb.asserts.fail(\"Message field type not supported in readAny()\");case b.BYTES:return this.readBytes();case b.UINT32:return this.readUint32();case b.ENUM:return this.readEnum();case b.SFIXED32:return this.readSfixed32();case b.SFIXED64:return this.readSfixed64();case b.SINT32:return this.readSint32();case b.SINT64:return this.readSint64();case b.FHASH64:return this.readFixedHash64();case b.VHASH64:return this.readVarintHash64();\ndefault:jspb.asserts.fail(\"Invalid field type in readAny()\")}return 0};jspb.BinaryReader.prototype.readMessage=function(a,b){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var c=this.decoder_.getEnd(),d=this.decoder_.readUnsignedVarint32();d=this.decoder_.getCursor()+d;this.decoder_.setEnd(d);b(a,this);this.decoder_.setCursor(d);this.decoder_.setEnd(c)};goog.exportProperty(jspb.BinaryReader.prototype,\"readMessage\",jspb.BinaryReader.prototype.readMessage);\njspb.BinaryReader.prototype.readGroup=function(a,b,c){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.START_GROUP);jspb.asserts.assert(this.nextField_==a);c(b,this);this.error_||this.nextWireType_==jspb.BinaryConstants.WireType.END_GROUP||(jspb.asserts.fail(\"Group submessage did not end with an END_GROUP tag\"),this.error_=!0)};goog.exportProperty(jspb.BinaryReader.prototype,\"readGroup\",jspb.BinaryReader.prototype.readGroup);\njspb.BinaryReader.prototype.getFieldDecoder=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32(),b=this.decoder_.getCursor(),c=b+a;a=jspb.BinaryDecoder.alloc(this.decoder_.getBuffer(),b,a);this.decoder_.setCursor(c);return a};jspb.BinaryReader.prototype.readInt32=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32()};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readInt32\",jspb.BinaryReader.prototype.readInt32);jspb.BinaryReader.prototype.readInt32String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint32String()};jspb.BinaryReader.prototype.readInt64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readInt64\",jspb.BinaryReader.prototype.readInt64);jspb.BinaryReader.prototype.readInt64String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64String()};jspb.BinaryReader.prototype.readUint32=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32()};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readUint32\",jspb.BinaryReader.prototype.readUint32);jspb.BinaryReader.prototype.readUint32String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint32String()};jspb.BinaryReader.prototype.readUint64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64()};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readUint64\",jspb.BinaryReader.prototype.readUint64);jspb.BinaryReader.prototype.readUint64String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readUnsignedVarint64String()};jspb.BinaryReader.prototype.readSint32=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint32()};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readSint32\",jspb.BinaryReader.prototype.readSint32);jspb.BinaryReader.prototype.readSint64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64()};goog.exportProperty(jspb.BinaryReader.prototype,\"readSint64\",jspb.BinaryReader.prototype.readSint64);\njspb.BinaryReader.prototype.readSint64String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarint64String()};jspb.BinaryReader.prototype.readFixed32=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readUint32()};goog.exportProperty(jspb.BinaryReader.prototype,\"readFixed32\",jspb.BinaryReader.prototype.readFixed32);\njspb.BinaryReader.prototype.readFixed64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64()};goog.exportProperty(jspb.BinaryReader.prototype,\"readFixed64\",jspb.BinaryReader.prototype.readFixed64);jspb.BinaryReader.prototype.readFixed64String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readUint64String()};\njspb.BinaryReader.prototype.readSfixed32=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32()};goog.exportProperty(jspb.BinaryReader.prototype,\"readSfixed32\",jspb.BinaryReader.prototype.readSfixed32);jspb.BinaryReader.prototype.readSfixed32String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readInt32().toString()};\njspb.BinaryReader.prototype.readSfixed64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64()};goog.exportProperty(jspb.BinaryReader.prototype,\"readSfixed64\",jspb.BinaryReader.prototype.readSfixed64);jspb.BinaryReader.prototype.readSfixed64String=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readInt64String()};\njspb.BinaryReader.prototype.readFloat=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED32);return this.decoder_.readFloat()};goog.exportProperty(jspb.BinaryReader.prototype,\"readFloat\",jspb.BinaryReader.prototype.readFloat);jspb.BinaryReader.prototype.readDouble=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readDouble()};goog.exportProperty(jspb.BinaryReader.prototype,\"readDouble\",jspb.BinaryReader.prototype.readDouble);\njspb.BinaryReader.prototype.readBool=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return!!this.decoder_.readUnsignedVarint32()};goog.exportProperty(jspb.BinaryReader.prototype,\"readBool\",jspb.BinaryReader.prototype.readBool);jspb.BinaryReader.prototype.readEnum=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSignedVarint64()};goog.exportProperty(jspb.BinaryReader.prototype,\"readEnum\",jspb.BinaryReader.prototype.readEnum);\njspb.BinaryReader.prototype.readString=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readString(a)};goog.exportProperty(jspb.BinaryReader.prototype,\"readString\",jspb.BinaryReader.prototype.readString);jspb.BinaryReader.prototype.readBytes=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var a=this.decoder_.readUnsignedVarint32();return this.decoder_.readBytes(a)};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readBytes\",jspb.BinaryReader.prototype.readBytes);jspb.BinaryReader.prototype.readVarintHash64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readVarintHash64()};jspb.BinaryReader.prototype.readSintHash64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readZigzagVarintHash64()};\njspb.BinaryReader.prototype.readSplitVarint64=function(a){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSplitVarint64(a)};jspb.BinaryReader.prototype.readSplitZigzagVarint64=function(a){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.VARINT);return this.decoder_.readSplitVarint64(function(b,c){return jspb.utils.fromZigzag64(b,c,a)})};\njspb.BinaryReader.prototype.readFixedHash64=function(){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readFixedHash64()};jspb.BinaryReader.prototype.readSplitFixed64=function(a){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.FIXED64);return this.decoder_.readSplitFixed64(a)};\njspb.BinaryReader.prototype.readPackedField_=function(a){jspb.asserts.assert(this.nextWireType_==jspb.BinaryConstants.WireType.DELIMITED);var b=this.decoder_.readUnsignedVarint32();b=this.decoder_.getCursor()+b;for(var c=[];this.decoder_.getCursor()<b;)c.push(a.call(this.decoder_));return c};jspb.BinaryReader.prototype.readPackedInt32=function(){return this.readPackedField_(this.decoder_.readSignedVarint32)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedInt32\",jspb.BinaryReader.prototype.readPackedInt32);\njspb.BinaryReader.prototype.readPackedInt32String=function(){return this.readPackedField_(this.decoder_.readSignedVarint32String)};jspb.BinaryReader.prototype.readPackedInt64=function(){return this.readPackedField_(this.decoder_.readSignedVarint64)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedInt64\",jspb.BinaryReader.prototype.readPackedInt64);jspb.BinaryReader.prototype.readPackedInt64String=function(){return this.readPackedField_(this.decoder_.readSignedVarint64String)};\njspb.BinaryReader.prototype.readPackedUint32=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedUint32\",jspb.BinaryReader.prototype.readPackedUint32);jspb.BinaryReader.prototype.readPackedUint32String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint32String)};jspb.BinaryReader.prototype.readPackedUint64=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64)};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readPackedUint64\",jspb.BinaryReader.prototype.readPackedUint64);jspb.BinaryReader.prototype.readPackedUint64String=function(){return this.readPackedField_(this.decoder_.readUnsignedVarint64String)};jspb.BinaryReader.prototype.readPackedSint32=function(){return this.readPackedField_(this.decoder_.readZigzagVarint32)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedSint32\",jspb.BinaryReader.prototype.readPackedSint32);\njspb.BinaryReader.prototype.readPackedSint64=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedSint64\",jspb.BinaryReader.prototype.readPackedSint64);jspb.BinaryReader.prototype.readPackedSint64String=function(){return this.readPackedField_(this.decoder_.readZigzagVarint64String)};jspb.BinaryReader.prototype.readPackedFixed32=function(){return this.readPackedField_(this.decoder_.readUint32)};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readPackedFixed32\",jspb.BinaryReader.prototype.readPackedFixed32);jspb.BinaryReader.prototype.readPackedFixed64=function(){return this.readPackedField_(this.decoder_.readUint64)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedFixed64\",jspb.BinaryReader.prototype.readPackedFixed64);jspb.BinaryReader.prototype.readPackedFixed64String=function(){return this.readPackedField_(this.decoder_.readUint64String)};\njspb.BinaryReader.prototype.readPackedSfixed32=function(){return this.readPackedField_(this.decoder_.readInt32)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedSfixed32\",jspb.BinaryReader.prototype.readPackedSfixed32);jspb.BinaryReader.prototype.readPackedSfixed64=function(){return this.readPackedField_(this.decoder_.readInt64)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedSfixed64\",jspb.BinaryReader.prototype.readPackedSfixed64);\njspb.BinaryReader.prototype.readPackedSfixed64String=function(){return this.readPackedField_(this.decoder_.readInt64String)};jspb.BinaryReader.prototype.readPackedFloat=function(){return this.readPackedField_(this.decoder_.readFloat)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedFloat\",jspb.BinaryReader.prototype.readPackedFloat);jspb.BinaryReader.prototype.readPackedDouble=function(){return this.readPackedField_(this.decoder_.readDouble)};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readPackedDouble\",jspb.BinaryReader.prototype.readPackedDouble);jspb.BinaryReader.prototype.readPackedBool=function(){return this.readPackedField_(this.decoder_.readBool)};goog.exportProperty(jspb.BinaryReader.prototype,\"readPackedBool\",jspb.BinaryReader.prototype.readPackedBool);jspb.BinaryReader.prototype.readPackedEnum=function(){return this.readPackedField_(this.decoder_.readEnum)};\ngoog.exportProperty(jspb.BinaryReader.prototype,\"readPackedEnum\",jspb.BinaryReader.prototype.readPackedEnum);jspb.BinaryReader.prototype.readPackedVarintHash64=function(){return this.readPackedField_(this.decoder_.readVarintHash64)};jspb.BinaryReader.prototype.readPackedFixedHash64=function(){return this.readPackedField_(this.decoder_.readFixedHash64)};jspb.BinaryEncoder=function(){this.buffer_=[]};jspb.BinaryEncoder.prototype.length=function(){return this.buffer_.length};jspb.BinaryEncoder.prototype.end=function(){var a=this.buffer_;this.buffer_=[];return a};\njspb.BinaryEncoder.prototype.writeSplitVarint64=function(a,b){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(b==Math.floor(b));jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);for(jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);0<b||127<a;)this.buffer_.push(a&127|128),a=(a>>>7|b<<25)>>>0,b>>>=7;this.buffer_.push(a)};\njspb.BinaryEncoder.prototype.writeSplitFixed64=function(a,b){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(b==Math.floor(b));jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32);this.writeUint32(a);this.writeUint32(b)};\njspb.BinaryEncoder.prototype.writeUnsignedVarint32=function(a){jspb.asserts.assert(a==Math.floor(a));for(jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);127<a;)this.buffer_.push(a&127|128),a>>>=7;this.buffer_.push(a)};\njspb.BinaryEncoder.prototype.writeSignedVarint32=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);if(0<=a)this.writeUnsignedVarint32(a);else{for(var b=0;9>b;b++)this.buffer_.push(a&127|128),a>>=7;this.buffer_.push(1)}};\njspb.BinaryEncoder.prototype.writeUnsignedVarint64=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeSignedVarint64=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeZigzagVarint32=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeUnsignedVarint32((a<<1^a>>31)>>>0)};jspb.BinaryEncoder.prototype.writeZigzagVarint64=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitZigzag64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeZigzagVarint64String=function(a){this.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(a))};jspb.BinaryEncoder.prototype.writeZigzagVarintHash64=function(a){var b=this;jspb.utils.splitHash64(a);jspb.utils.toZigzag64(jspb.utils.split64Low,jspb.utils.split64High,function(a,d){b.writeSplitVarint64(a>>>0,d>>>0)})};\njspb.BinaryEncoder.prototype.writeUint8=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(0<=a&&256>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeUint16=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(0<=a&&65536>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};\njspb.BinaryEncoder.prototype.writeUint32=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_32);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};jspb.BinaryEncoder.prototype.writeUint64=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(0<=a&&a<jspb.BinaryConstants.TWO_TO_64);jspb.utils.splitUint64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeInt8=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(-128<=a&&128>a);this.buffer_.push(a>>>0&255)};jspb.BinaryEncoder.prototype.writeInt16=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(-32768<=a&&32768>a);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255)};\njspb.BinaryEncoder.prototype.writeInt32=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.buffer_.push(a>>>0&255);this.buffer_.push(a>>>8&255);this.buffer_.push(a>>>16&255);this.buffer_.push(a>>>24&255)};\njspb.BinaryEncoder.prototype.writeInt64=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_63&&a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitInt64(a);this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeInt64String=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(+a>=-jspb.BinaryConstants.TWO_TO_63&&+a<jspb.BinaryConstants.TWO_TO_63);jspb.utils.splitHash64(jspb.utils.decimalStringToHash64(a));this.writeSplitFixed64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeFloat=function(a){jspb.asserts.assert(Infinity===a||-Infinity===a||isNaN(a)||a>=-jspb.BinaryConstants.FLOAT32_MAX&&a<=jspb.BinaryConstants.FLOAT32_MAX);jspb.utils.splitFloat32(a);this.writeUint32(jspb.utils.split64Low)};\njspb.BinaryEncoder.prototype.writeDouble=function(a){jspb.asserts.assert(Infinity===a||-Infinity===a||isNaN(a)||a>=-jspb.BinaryConstants.FLOAT64_MAX&&a<=jspb.BinaryConstants.FLOAT64_MAX);jspb.utils.splitFloat64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};jspb.BinaryEncoder.prototype.writeBool=function(a){jspb.asserts.assert(\"boolean\"===typeof a||\"number\"===typeof a);this.buffer_.push(a?1:0)};\njspb.BinaryEncoder.prototype.writeEnum=function(a){jspb.asserts.assert(a==Math.floor(a));jspb.asserts.assert(a>=-jspb.BinaryConstants.TWO_TO_31&&a<jspb.BinaryConstants.TWO_TO_31);this.writeSignedVarint32(a)};jspb.BinaryEncoder.prototype.writeBytes=function(a){this.buffer_.push.apply(this.buffer_,a)};jspb.BinaryEncoder.prototype.writeVarintHash64=function(a){jspb.utils.splitHash64(a);this.writeSplitVarint64(jspb.utils.split64Low,jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeFixedHash64=function(a){jspb.utils.splitHash64(a);this.writeUint32(jspb.utils.split64Low);this.writeUint32(jspb.utils.split64High)};\njspb.BinaryEncoder.prototype.writeString=function(a){var b=this.buffer_.length;jspb.asserts.assertString(a);for(var c=0;c<a.length;c++){var d=a.charCodeAt(c);if(128>d)this.buffer_.push(d);else if(2048>d)this.buffer_.push(d>>6|192),this.buffer_.push(d&63|128);else if(65536>d)if(55296<=d&&56319>=d&&c+1<a.length){var e=a.charCodeAt(c+1);56320<=e&&57343>=e&&(d=1024*(d-55296)+e-56320+65536,this.buffer_.push(d>>18|240),this.buffer_.push(d>>12&63|128),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|\n128),c++)}else this.buffer_.push(d>>12|224),this.buffer_.push(d>>6&63|128),this.buffer_.push(d&63|128)}return this.buffer_.length-b};jspb.arith={};jspb.arith.UInt64=function(a,b){this.lo=a;this.hi=b};jspb.arith.UInt64.prototype.cmp=function(a){return this.hi<a.hi||this.hi==a.hi&&this.lo<a.lo?-1:this.hi==a.hi&&this.lo==a.lo?0:1};jspb.arith.UInt64.prototype.rightShift=function(){return new jspb.arith.UInt64((this.lo>>>1|(this.hi&1)<<31)>>>0,this.hi>>>1>>>0)};jspb.arith.UInt64.prototype.leftShift=function(){return new jspb.arith.UInt64(this.lo<<1>>>0,(this.hi<<1|this.lo>>>31)>>>0)};\njspb.arith.UInt64.prototype.msb=function(){return!!(this.hi&2147483648)};jspb.arith.UInt64.prototype.lsb=function(){return!!(this.lo&1)};jspb.arith.UInt64.prototype.zero=function(){return 0==this.lo&&0==this.hi};jspb.arith.UInt64.prototype.add=function(a){return new jspb.arith.UInt64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};\njspb.arith.UInt64.prototype.sub=function(a){return new jspb.arith.UInt64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.UInt64.mul32x32=function(a,b){var c=a&65535;a>>>=16;var d=b&65535,e=b>>>16;b=c*d+65536*(c*e&65535)+65536*(a*d&65535);for(c=a*e+(c*e>>>16)+(a*d>>>16);4294967296<=b;)b-=4294967296,c+=1;return new jspb.arith.UInt64(b>>>0,c>>>0)};\njspb.arith.UInt64.prototype.mul=function(a){var b=jspb.arith.UInt64.mul32x32(this.lo,a);a=jspb.arith.UInt64.mul32x32(this.hi,a);a.hi=a.lo;a.lo=0;return b.add(a)};\njspb.arith.UInt64.prototype.div=function(a){if(0==a)return[];var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(this.lo,this.hi);a=new jspb.arith.UInt64(a,0);for(var d=new jspb.arith.UInt64(1,0);!a.msb();)a=a.leftShift(),d=d.leftShift();for(;!d.zero();)0>=a.cmp(c)&&(b=b.add(d),c=c.sub(a)),a=a.rightShift(),d=d.rightShift();return[b,c]};jspb.arith.UInt64.prototype.toString=function(){for(var a=\"\",b=this;!b.zero();){b=b.div(10);var c=b[0];a=b[1].lo+a;b=c}\"\"==a&&(a=\"0\");return a};\njspb.arith.UInt64.fromString=function(a){for(var b=new jspb.arith.UInt64(0,0),c=new jspb.arith.UInt64(0,0),d=0;d<a.length;d++){if(\"0\">a[d]||\"9\"<a[d])return null;var e=parseInt(a[d],10);c.lo=e;b=b.mul(10).add(c)}return b};jspb.arith.UInt64.prototype.clone=function(){return new jspb.arith.UInt64(this.lo,this.hi)};jspb.arith.Int64=function(a,b){this.lo=a;this.hi=b};\njspb.arith.Int64.prototype.add=function(a){return new jspb.arith.Int64((this.lo+a.lo&4294967295)>>>0>>>0,((this.hi+a.hi&4294967295)>>>0)+(4294967296<=this.lo+a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.sub=function(a){return new jspb.arith.Int64((this.lo-a.lo&4294967295)>>>0>>>0,((this.hi-a.hi&4294967295)>>>0)-(0>this.lo-a.lo?1:0)>>>0)};jspb.arith.Int64.prototype.clone=function(){return new jspb.arith.Int64(this.lo,this.hi)};\njspb.arith.Int64.prototype.toString=function(){var a=0!=(this.hi&2147483648),b=new jspb.arith.UInt64(this.lo,this.hi);a&&(b=(new jspb.arith.UInt64(0,0)).sub(b));return(a?\"-\":\"\")+b.toString()};jspb.arith.Int64.fromString=function(a){var b=0<a.length&&\"-\"==a[0];b&&(a=a.substring(1));a=jspb.arith.UInt64.fromString(a);if(null===a)return null;b&&(a=(new jspb.arith.UInt64(0,0)).sub(a));return new jspb.arith.Int64(a.lo,a.hi)};jspb.BinaryWriter=function(){this.blocks_=[];this.totalLength_=0;this.encoder_=new jspb.BinaryEncoder;this.bookmarks_=[]};jspb.BinaryWriter.prototype.appendUint8Array_=function(a){var b=this.encoder_.end();this.blocks_.push(b);this.blocks_.push(a);this.totalLength_+=b.length+a.length};\njspb.BinaryWriter.prototype.beginDelimited_=function(a){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED);a=this.encoder_.end();this.blocks_.push(a);this.totalLength_+=a.length;a.push(this.totalLength_);return a};jspb.BinaryWriter.prototype.endDelimited_=function(a){var b=a.pop();b=this.totalLength_+this.encoder_.length()-b;for(jspb.asserts.assert(0<=b);127<b;)a.push(b&127|128),b>>>=7,this.totalLength_++;a.push(b);this.totalLength_++};\njspb.BinaryWriter.prototype.writeSerializedMessage=function(a,b,c){this.appendUint8Array_(a.subarray(b,c))};jspb.BinaryWriter.prototype.maybeWriteSerializedMessage=function(a,b,c){null!=a&&null!=b&&null!=c&&this.writeSerializedMessage(a,b,c)};jspb.BinaryWriter.prototype.reset=function(){this.blocks_=[];this.encoder_.end();this.totalLength_=0;this.bookmarks_=[]};\njspb.BinaryWriter.prototype.getResultBuffer=function(){jspb.asserts.assert(0==this.bookmarks_.length);for(var a=new Uint8Array(this.totalLength_+this.encoder_.length()),b=this.blocks_,c=b.length,d=0,e=0;e<c;e++){var f=b[e];a.set(f,d);d+=f.length}b=this.encoder_.end();a.set(b,d);d+=b.length;jspb.asserts.assert(d==a.length);this.blocks_=[a];return a};goog.exportProperty(jspb.BinaryWriter.prototype,\"getResultBuffer\",jspb.BinaryWriter.prototype.getResultBuffer);\njspb.BinaryWriter.prototype.getResultBase64String=function(a){return goog.crypt.base64.encodeByteArray(this.getResultBuffer(),a)};jspb.BinaryWriter.prototype.beginSubMessage=function(a){this.bookmarks_.push(this.beginDelimited_(a))};jspb.BinaryWriter.prototype.endSubMessage=function(){jspb.asserts.assert(0<=this.bookmarks_.length);this.endDelimited_(this.bookmarks_.pop())};\njspb.BinaryWriter.prototype.writeFieldHeader_=function(a,b){jspb.asserts.assert(1<=a&&a==Math.floor(a));this.encoder_.writeUnsignedVarint32(8*a+b)};\njspb.BinaryWriter.prototype.writeAny=function(a,b,c){var d=jspb.BinaryConstants.FieldType;switch(a){case d.DOUBLE:this.writeDouble(b,c);break;case d.FLOAT:this.writeFloat(b,c);break;case d.INT64:this.writeInt64(b,c);break;case d.UINT64:this.writeUint64(b,c);break;case d.INT32:this.writeInt32(b,c);break;case d.FIXED64:this.writeFixed64(b,c);break;case d.FIXED32:this.writeFixed32(b,c);break;case d.BOOL:this.writeBool(b,c);break;case d.STRING:this.writeString(b,c);break;case d.GROUP:jspb.asserts.fail(\"Group field type not supported in writeAny()\");\nbreak;case d.MESSAGE:jspb.asserts.fail(\"Message field type not supported in writeAny()\");break;case d.BYTES:this.writeBytes(b,c);break;case d.UINT32:this.writeUint32(b,c);break;case d.ENUM:this.writeEnum(b,c);break;case d.SFIXED32:this.writeSfixed32(b,c);break;case d.SFIXED64:this.writeSfixed64(b,c);break;case d.SINT32:this.writeSint32(b,c);break;case d.SINT64:this.writeSint64(b,c);break;case d.FHASH64:this.writeFixedHash64(b,c);break;case d.VHASH64:this.writeVarintHash64(b,c);break;default:jspb.asserts.fail(\"Invalid field type in writeAny()\")}};\njspb.BinaryWriter.prototype.writeUnsignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint32(b))};jspb.BinaryWriter.prototype.writeSignedVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};jspb.BinaryWriter.prototype.writeUnsignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeUnsignedVarint64(b))};\njspb.BinaryWriter.prototype.writeSignedVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint64(b))};jspb.BinaryWriter.prototype.writeZigzagVarint32_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint32(b))};jspb.BinaryWriter.prototype.writeZigzagVarint64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64(b))};\njspb.BinaryWriter.prototype.writeZigzagVarint64String_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarint64String(b))};jspb.BinaryWriter.prototype.writeZigzagVarintHash64_=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeZigzagVarintHash64(b))};\njspb.BinaryWriter.prototype.writeInt32=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeInt32\",jspb.BinaryWriter.prototype.writeInt32);jspb.BinaryWriter.prototype.writeInt32String=function(a,b){null!=b&&(b=parseInt(b,10),jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeSignedVarint32_(a,b))};\njspb.BinaryWriter.prototype.writeInt64=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeSignedVarint64_(a,b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeInt64\",jspb.BinaryWriter.prototype.writeInt64);jspb.BinaryWriter.prototype.writeInt64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};\njspb.BinaryWriter.prototype.writeUint32=function(a,b){null!=b&&(jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeUint32\",jspb.BinaryWriter.prototype.writeUint32);jspb.BinaryWriter.prototype.writeUint32String=function(a,b){null!=b&&(b=parseInt(b,10),jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeUnsignedVarint32_(a,b))};\njspb.BinaryWriter.prototype.writeUint64=function(a,b){null!=b&&(jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeUnsignedVarint64_(a,b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeUint64\",jspb.BinaryWriter.prototype.writeUint64);jspb.BinaryWriter.prototype.writeUint64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSplitVarint64(b.lo,b.hi))};\njspb.BinaryWriter.prototype.writeSint32=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeZigzagVarint32_(a,b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeSint32\",jspb.BinaryWriter.prototype.writeSint32);jspb.BinaryWriter.prototype.writeSint64=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeZigzagVarint64_(a,b))};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writeSint64\",jspb.BinaryWriter.prototype.writeSint64);jspb.BinaryWriter.prototype.writeSintHash64=function(a,b){null!=b&&this.writeZigzagVarintHash64_(a,b)};jspb.BinaryWriter.prototype.writeSint64String=function(a,b){null!=b&&this.writeZigzagVarint64String_(a,b)};\njspb.BinaryWriter.prototype.writeFixed32=function(a,b){null!=b&&(jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_32),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeUint32(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeFixed32\",jspb.BinaryWriter.prototype.writeFixed32);\njspb.BinaryWriter.prototype.writeFixed64=function(a,b){null!=b&&(jspb.asserts.assert(0<=b&&b<jspb.BinaryConstants.TWO_TO_64),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeUint64(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeFixed64\",jspb.BinaryWriter.prototype.writeFixed64);\njspb.BinaryWriter.prototype.writeFixed64String=function(a,b){null!=b&&(b=jspb.arith.UInt64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeSfixed32=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeInt32(b))};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writeSfixed32\",jspb.BinaryWriter.prototype.writeSfixed32);jspb.BinaryWriter.prototype.writeSfixed64=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_63&&b<jspb.BinaryConstants.TWO_TO_63),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeInt64(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeSfixed64\",jspb.BinaryWriter.prototype.writeSfixed64);\njspb.BinaryWriter.prototype.writeSfixed64String=function(a,b){null!=b&&(b=jspb.arith.Int64.fromString(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeSplitFixed64(b.lo,b.hi))};jspb.BinaryWriter.prototype.writeFloat=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED32),this.encoder_.writeFloat(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeFloat\",jspb.BinaryWriter.prototype.writeFloat);\njspb.BinaryWriter.prototype.writeDouble=function(a,b){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeDouble(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeDouble\",jspb.BinaryWriter.prototype.writeDouble);jspb.BinaryWriter.prototype.writeBool=function(a,b){null!=b&&(jspb.asserts.assert(\"boolean\"===typeof b||\"number\"===typeof b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeBool(b))};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writeBool\",jspb.BinaryWriter.prototype.writeBool);jspb.BinaryWriter.prototype.writeEnum=function(a,b){null!=b&&(jspb.asserts.assert(b>=-jspb.BinaryConstants.TWO_TO_31&&b<jspb.BinaryConstants.TWO_TO_31),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(b))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeEnum\",jspb.BinaryWriter.prototype.writeEnum);\njspb.BinaryWriter.prototype.writeString=function(a,b){null!=b&&(a=this.beginDelimited_(a),this.encoder_.writeString(b),this.endDelimited_(a))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeString\",jspb.BinaryWriter.prototype.writeString);jspb.BinaryWriter.prototype.writeBytes=function(a,b){null!=b&&(b=jspb.utils.byteSourceToUint8Array(b),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),this.appendUint8Array_(b))};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writeBytes\",jspb.BinaryWriter.prototype.writeBytes);jspb.BinaryWriter.prototype.writeMessage=function(a,b,c){null!=b&&(a=this.beginDelimited_(a),c(b,this),this.endDelimited_(a))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeMessage\",jspb.BinaryWriter.prototype.writeMessage);\njspb.BinaryWriter.prototype.writeMessageSet=function(a,b,c){null!=b&&(this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.START_GROUP),this.writeFieldHeader_(2,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeSignedVarint32(a),a=this.beginDelimited_(3),c(b,this),this.endDelimited_(a),this.writeFieldHeader_(1,jspb.BinaryConstants.WireType.END_GROUP))};\njspb.BinaryWriter.prototype.writeGroup=function(a,b,c){null!=b&&(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b,this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP))};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeGroup\",jspb.BinaryWriter.prototype.writeGroup);jspb.BinaryWriter.prototype.writeFixedHash64=function(a,b){null!=b&&(jspb.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64),this.encoder_.writeFixedHash64(b))};\njspb.BinaryWriter.prototype.writeVarintHash64=function(a,b){null!=b&&(jspb.asserts.assert(8==b.length),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT),this.encoder_.writeVarintHash64(b))};jspb.BinaryWriter.prototype.writeSplitFixed64=function(a,b,c){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.FIXED64);this.encoder_.writeSplitFixed64(b,c)};\njspb.BinaryWriter.prototype.writeSplitVarint64=function(a,b,c){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT);this.encoder_.writeSplitVarint64(b,c)};jspb.BinaryWriter.prototype.writeSplitZigzagVarint64=function(a,b,c){this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.VARINT);var d=this.encoder_;jspb.utils.toZigzag64(b,c,function(a,b){d.writeSplitVarint64(a>>>0,b>>>0)})};\njspb.BinaryWriter.prototype.writeRepeatedInt32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint32_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedInt32\",jspb.BinaryWriter.prototype.writeRepeatedInt32);jspb.BinaryWriter.prototype.writeRepeatedInt32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt32String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedInt64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSignedVarint64_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedInt64\",jspb.BinaryWriter.prototype.writeRepeatedInt64);jspb.BinaryWriter.prototype.writeRepeatedSplitFixed64=function(a,b,c,d){if(null!=b)for(var e=0;e<b.length;e++)this.writeSplitFixed64(a,c(b[e]),d(b[e]))};\njspb.BinaryWriter.prototype.writeRepeatedSplitVarint64=function(a,b,c,d){if(null!=b)for(var e=0;e<b.length;e++)this.writeSplitVarint64(a,c(b[e]),d(b[e]))};jspb.BinaryWriter.prototype.writeRepeatedSplitZigzagVarint64=function(a,b,c,d){if(null!=b)for(var e=0;e<b.length;e++)this.writeSplitZigzagVarint64(a,c(b[e]),d(b[e]))};jspb.BinaryWriter.prototype.writeRepeatedInt64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeInt64String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedUint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint32_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedUint32\",jspb.BinaryWriter.prototype.writeRepeatedUint32);jspb.BinaryWriter.prototype.writeRepeatedUint32String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint32String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedUint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUnsignedVarint64_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedUint64\",jspb.BinaryWriter.prototype.writeRepeatedUint64);jspb.BinaryWriter.prototype.writeRepeatedUint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeUint64String(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedSint32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint32_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedSint32\",jspb.BinaryWriter.prototype.writeRepeatedSint32);jspb.BinaryWriter.prototype.writeRepeatedSint64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64_(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedSint64\",jspb.BinaryWriter.prototype.writeRepeatedSint64);\njspb.BinaryWriter.prototype.writeRepeatedSint64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarint64String_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedSintHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeZigzagVarintHash64_(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed32(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedFixed32\",jspb.BinaryWriter.prototype.writeRepeatedFixed32);\njspb.BinaryWriter.prototype.writeRepeatedFixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedFixed64\",jspb.BinaryWriter.prototype.writeRepeatedFixed64);jspb.BinaryWriter.prototype.writeRepeatedFixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixed64String(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedFixed64String\",jspb.BinaryWriter.prototype.writeRepeatedFixed64String);\njspb.BinaryWriter.prototype.writeRepeatedSfixed32=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed32(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedSfixed32\",jspb.BinaryWriter.prototype.writeRepeatedSfixed32);jspb.BinaryWriter.prototype.writeRepeatedSfixed64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedSfixed64\",jspb.BinaryWriter.prototype.writeRepeatedSfixed64);\njspb.BinaryWriter.prototype.writeRepeatedSfixed64String=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeSfixed64String(a,b[c])};jspb.BinaryWriter.prototype.writeRepeatedFloat=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFloat(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedFloat\",jspb.BinaryWriter.prototype.writeRepeatedFloat);\njspb.BinaryWriter.prototype.writeRepeatedDouble=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeDouble(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedDouble\",jspb.BinaryWriter.prototype.writeRepeatedDouble);jspb.BinaryWriter.prototype.writeRepeatedBool=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBool(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedBool\",jspb.BinaryWriter.prototype.writeRepeatedBool);\njspb.BinaryWriter.prototype.writeRepeatedEnum=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeEnum(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedEnum\",jspb.BinaryWriter.prototype.writeRepeatedEnum);jspb.BinaryWriter.prototype.writeRepeatedString=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeString(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedString\",jspb.BinaryWriter.prototype.writeRepeatedString);\njspb.BinaryWriter.prototype.writeRepeatedBytes=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeBytes(a,b[c])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedBytes\",jspb.BinaryWriter.prototype.writeRepeatedBytes);jspb.BinaryWriter.prototype.writeRepeatedMessage=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++){var e=this.beginDelimited_(a);c(b[d],this);this.endDelimited_(e)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedMessage\",jspb.BinaryWriter.prototype.writeRepeatedMessage);\njspb.BinaryWriter.prototype.writeRepeatedGroup=function(a,b,c){if(null!=b)for(var d=0;d<b.length;d++)this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.START_GROUP),c(b[d],this),this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.END_GROUP)};goog.exportProperty(jspb.BinaryWriter.prototype,\"writeRepeatedGroup\",jspb.BinaryWriter.prototype.writeRepeatedGroup);jspb.BinaryWriter.prototype.writeRepeatedFixedHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeFixedHash64(a,b[c])};\njspb.BinaryWriter.prototype.writeRepeatedVarintHash64=function(a,b){if(null!=b)for(var c=0;c<b.length;c++)this.writeVarintHash64(a,b[c])};jspb.BinaryWriter.prototype.writePackedInt32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedInt32\",jspb.BinaryWriter.prototype.writePackedInt32);\njspb.BinaryWriter.prototype.writePackedInt32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedInt64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeSignedVarint64(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedInt64\",jspb.BinaryWriter.prototype.writePackedInt64);\njspb.BinaryWriter.prototype.writePackedSplitFixed64=function(a,b,c,d){if(null!=b){a=this.beginDelimited_(a);for(var e=0;e<b.length;e++)this.encoder_.writeSplitFixed64(c(b[e]),d(b[e]));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSplitVarint64=function(a,b,c,d){if(null!=b){a=this.beginDelimited_(a);for(var e=0;e<b.length;e++)this.encoder_.writeSplitVarint64(c(b[e]),d(b[e]));this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedSplitZigzagVarint64=function(a,b,c,d){if(null!=b){a=this.beginDelimited_(a);for(var e=this.encoder_,f=0;f<b.length;f++)jspb.utils.toZigzag64(c(b[f]),d(b[f]),function(a,b){e.writeSplitVarint64(a>>>0,b>>>0)});this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedInt64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.Int64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedUint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedUint32\",jspb.BinaryWriter.prototype.writePackedUint32);\njspb.BinaryWriter.prototype.writePackedUint32String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint32(parseInt(b[c],10));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedUint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeUnsignedVarint64(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedUint64\",jspb.BinaryWriter.prototype.writePackedUint64);\njspb.BinaryWriter.prototype.writePackedUint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++){var d=jspb.arith.UInt64.fromString(b[c]);this.encoder_.writeSplitVarint64(d.lo,d.hi)}this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSint32=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint32(b[c]);this.endDelimited_(a)}};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedSint32\",jspb.BinaryWriter.prototype.writePackedSint32);jspb.BinaryWriter.prototype.writePackedSint64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarint64(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedSint64\",jspb.BinaryWriter.prototype.writePackedSint64);\njspb.BinaryWriter.prototype.writePackedSint64String=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarintHash64(jspb.utils.decimalStringToHash64(b[c]));this.endDelimited_(a)}};jspb.BinaryWriter.prototype.writePackedSintHash64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeZigzagVarintHash64(b[c]);this.endDelimited_(a)}};\njspb.BinaryWriter.prototype.writePackedFixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeUint32(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedFixed32\",jspb.BinaryWriter.prototype.writePackedFixed32);\njspb.BinaryWriter.prototype.writePackedFixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeUint64(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedFixed64\",jspb.BinaryWriter.prototype.writePackedFixed64);\njspb.BinaryWriter.prototype.writePackedFixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++){var c=jspb.arith.UInt64.fromString(b[a]);this.encoder_.writeSplitFixed64(c.lo,c.hi)}};\njspb.BinaryWriter.prototype.writePackedSfixed32=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeInt32(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedSfixed32\",jspb.BinaryWriter.prototype.writePackedSfixed32);\njspb.BinaryWriter.prototype.writePackedSfixed64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedSfixed64\",jspb.BinaryWriter.prototype.writePackedSfixed64);\njspb.BinaryWriter.prototype.writePackedSfixed64String=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeInt64String(b[a])};jspb.BinaryWriter.prototype.writePackedFloat=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(4*b.length),a=0;a<b.length;a++)this.encoder_.writeFloat(b[a])};\ngoog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedFloat\",jspb.BinaryWriter.prototype.writePackedFloat);jspb.BinaryWriter.prototype.writePackedDouble=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeDouble(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedDouble\",jspb.BinaryWriter.prototype.writePackedDouble);\njspb.BinaryWriter.prototype.writePackedBool=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(b.length),a=0;a<b.length;a++)this.encoder_.writeBool(b[a])};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedBool\",jspb.BinaryWriter.prototype.writePackedBool);\njspb.BinaryWriter.prototype.writePackedEnum=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeEnum(b[c]);this.endDelimited_(a)}};goog.exportProperty(jspb.BinaryWriter.prototype,\"writePackedEnum\",jspb.BinaryWriter.prototype.writePackedEnum);\njspb.BinaryWriter.prototype.writePackedFixedHash64=function(a,b){if(null!=b&&b.length)for(this.writeFieldHeader_(a,jspb.BinaryConstants.WireType.DELIMITED),this.encoder_.writeUnsignedVarint32(8*b.length),a=0;a<b.length;a++)this.encoder_.writeFixedHash64(b[a])};jspb.BinaryWriter.prototype.writePackedVarintHash64=function(a,b){if(null!=b&&b.length){a=this.beginDelimited_(a);for(var c=0;c<b.length;c++)this.encoder_.writeVarintHash64(b[c]);this.endDelimited_(a)}};jspb.Map=function(a,b){this.arr_=a;this.valueCtor_=b;this.map_={};this.arrClean=!0;0<this.arr_.length&&this.loadFromArray_()};goog.exportSymbol(\"jspb.Map\",jspb.Map);jspb.Map.prototype.loadFromArray_=function(){for(var a=0;a<this.arr_.length;a++){var b=this.arr_[a],c=b[0];this.map_[c.toString()]=new jspb.Map.Entry_(c,b[1])}this.arrClean=!0};\njspb.Map.prototype.toArray=function(){if(this.arrClean){if(this.valueCtor_){var a=this.map_,b;for(b in a)if(Object.prototype.hasOwnProperty.call(a,b)){var c=a[b].valueWrapper;c&&c.toArray()}}}else{this.arr_.length=0;a=this.stringKeys_();a.sort();for(b=0;b<a.length;b++){var d=this.map_[a[b]];(c=d.valueWrapper)&&c.toArray();this.arr_.push([d.key,d.value])}this.arrClean=!0}return this.arr_};goog.exportProperty(jspb.Map.prototype,\"toArray\",jspb.Map.prototype.toArray);\njspb.Map.prototype.toObject=function(a,b){for(var c=this.toArray(),d=[],e=0;e<c.length;e++){var f=this.map_[c[e][0].toString()];this.wrapEntry_(f);var g=f.valueWrapper;g?(jspb.asserts.assert(b),d.push([f.key,b(a,g)])):d.push([f.key,f.value])}return d};goog.exportProperty(jspb.Map.prototype,\"toObject\",jspb.Map.prototype.toObject);jspb.Map.fromObject=function(a,b,c){b=new jspb.Map([],b);for(var d=0;d<a.length;d++){var e=a[d][0],f=c(a[d][1]);b.set(e,f)}return b};\ngoog.exportProperty(jspb.Map,\"fromObject\",jspb.Map.fromObject);jspb.Map.ArrayIteratorIterable_=function(a){this.idx_=0;this.arr_=a};jspb.Map.ArrayIteratorIterable_.prototype.next=function(){return this.idx_<this.arr_.length?{done:!1,value:this.arr_[this.idx_++]}:{done:!0,value:void 0}};\"undefined\"!=typeof Symbol&&(jspb.Map.ArrayIteratorIterable_.prototype[Symbol.iterator]=function(){return this});jspb.Map.prototype.getLength=function(){return this.stringKeys_().length};\ngoog.exportProperty(jspb.Map.prototype,\"getLength\",jspb.Map.prototype.getLength);jspb.Map.prototype.clear=function(){this.map_={};this.arrClean=!1};goog.exportProperty(jspb.Map.prototype,\"clear\",jspb.Map.prototype.clear);jspb.Map.prototype.del=function(a){a=a.toString();var b=this.map_.hasOwnProperty(a);delete this.map_[a];this.arrClean=!1;return b};goog.exportProperty(jspb.Map.prototype,\"del\",jspb.Map.prototype.del);\njspb.Map.prototype.getEntryList=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,d.value])}return a};goog.exportProperty(jspb.Map.prototype,\"getEntryList\",jspb.Map.prototype.getEntryList);jspb.Map.prototype.entries=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++){var d=this.map_[b[c]];a.push([d.key,this.wrapEntry_(d)])}return new jspb.Map.ArrayIteratorIterable_(a)};\ngoog.exportProperty(jspb.Map.prototype,\"entries\",jspb.Map.prototype.entries);jspb.Map.prototype.keys=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.map_[b[c]].key);return new jspb.Map.ArrayIteratorIterable_(a)};goog.exportProperty(jspb.Map.prototype,\"keys\",jspb.Map.prototype.keys);jspb.Map.prototype.values=function(){var a=[],b=this.stringKeys_();b.sort();for(var c=0;c<b.length;c++)a.push(this.wrapEntry_(this.map_[b[c]]));return new jspb.Map.ArrayIteratorIterable_(a)};\ngoog.exportProperty(jspb.Map.prototype,\"values\",jspb.Map.prototype.values);jspb.Map.prototype.forEach=function(a,b){var c=this.stringKeys_();c.sort();for(var d=0;d<c.length;d++){var e=this.map_[c[d]];a.call(b,this.wrapEntry_(e),e.key,this)}};goog.exportProperty(jspb.Map.prototype,\"forEach\",jspb.Map.prototype.forEach);jspb.Map.prototype.set=function(a,b){var c=new jspb.Map.Entry_(a);this.valueCtor_?(c.valueWrapper=b,c.value=b.toArray()):c.value=b;this.map_[a.toString()]=c;this.arrClean=!1;return this};\ngoog.exportProperty(jspb.Map.prototype,\"set\",jspb.Map.prototype.set);jspb.Map.prototype.wrapEntry_=function(a){return this.valueCtor_?(a.valueWrapper||(a.valueWrapper=new this.valueCtor_(a.value)),a.valueWrapper):a.value};jspb.Map.prototype.get=function(a){if(a=this.map_[a.toString()])return this.wrapEntry_(a)};goog.exportProperty(jspb.Map.prototype,\"get\",jspb.Map.prototype.get);jspb.Map.prototype.has=function(a){return a.toString()in this.map_};goog.exportProperty(jspb.Map.prototype,\"has\",jspb.Map.prototype.has);\njspb.Map.prototype.serializeBinary=function(a,b,c,d,e){var f=this.stringKeys_();f.sort();for(var g=0;g<f.length;g++){var h=this.map_[f[g]];b.beginSubMessage(a);c.call(b,1,h.key);this.valueCtor_?d.call(b,2,this.wrapEntry_(h),e):d.call(b,2,h.value);b.endSubMessage()}};goog.exportProperty(jspb.Map.prototype,\"serializeBinary\",jspb.Map.prototype.serializeBinary);\njspb.Map.deserializeBinary=function(a,b,c,d,e,f,g){for(;b.nextField()&&!b.isEndGroup();){var h=b.getFieldNumber();1==h?f=c.call(b):2==h&&(a.valueCtor_?(jspb.asserts.assert(e),g||(g=new a.valueCtor_),d.call(b,g,e)):g=d.call(b))}jspb.asserts.assert(void 0!=f);jspb.asserts.assert(void 0!=g);a.set(f,g)};goog.exportProperty(jspb.Map,\"deserializeBinary\",jspb.Map.deserializeBinary);\njspb.Map.prototype.stringKeys_=function(){var a=this.map_,b=[],c;for(c in a)Object.prototype.hasOwnProperty.call(a,c)&&b.push(c);return b};jspb.Map.Entry_=function(a,b){this.key=a;this.value=b;this.valueWrapper=void 0};jspb.ExtensionFieldInfo=function(a,b,c,d,e){this.fieldIndex=a;this.fieldName=b;this.ctor=c;this.toObjectFn=d;this.isRepeated=e};goog.exportSymbol(\"jspb.ExtensionFieldInfo\",jspb.ExtensionFieldInfo);jspb.ExtensionFieldBinaryInfo=function(a,b,c,d,e,f){this.fieldInfo=a;this.binaryReaderFn=b;this.binaryWriterFn=c;this.binaryMessageSerializeFn=d;this.binaryMessageDeserializeFn=e;this.isPacked=f};goog.exportSymbol(\"jspb.ExtensionFieldBinaryInfo\",jspb.ExtensionFieldBinaryInfo);\njspb.ExtensionFieldInfo.prototype.isMessageType=function(){return!!this.ctor};goog.exportProperty(jspb.ExtensionFieldInfo.prototype,\"isMessageType\",jspb.ExtensionFieldInfo.prototype.isMessageType);jspb.Message=function(){};goog.exportSymbol(\"jspb.Message\",jspb.Message);jspb.Message.GENERATE_TO_OBJECT=!0;goog.exportProperty(jspb.Message,\"GENERATE_TO_OBJECT\",jspb.Message.GENERATE_TO_OBJECT);jspb.Message.GENERATE_FROM_OBJECT=!goog.DISALLOW_TEST_ONLY_CODE;\ngoog.exportProperty(jspb.Message,\"GENERATE_FROM_OBJECT\",jspb.Message.GENERATE_FROM_OBJECT);jspb.Message.GENERATE_TO_STRING=!0;jspb.Message.ASSUME_LOCAL_ARRAYS=!1;jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS=!0;jspb.Message.SUPPORTS_UINT8ARRAY_=\"function\"==typeof Uint8Array;jspb.Message.prototype.getJsPbMessageId=function(){return this.messageId_};goog.exportProperty(jspb.Message.prototype,\"getJsPbMessageId\",jspb.Message.prototype.getJsPbMessageId);jspb.Message.getIndex_=function(a,b){return b+a.arrayIndexOffset_};\njspb.Message.hiddenES6Property_=function(){};jspb.Message.getFieldNumber_=function(a,b){return b-a.arrayIndexOffset_};\njspb.Message.initialize=function(a,b,c,d,e,f){a.wrappers_=null;b||(b=c?[c]:[]);a.messageId_=c?String(c):void 0;a.arrayIndexOffset_=0===c?-1:0;a.array=b;jspb.Message.initPivotAndExtensionObject_(a,d);a.convertedPrimitiveFields_={};jspb.Message.SERIALIZE_EMPTY_TRAILING_FIELDS||(a.repeatedFields=e);if(e)for(b=0;b<e.length;b++)c=e[b],c<a.pivot_?(c=jspb.Message.getIndex_(a,c),a.array[c]=a.array[c]||jspb.Message.EMPTY_LIST_SENTINEL_):(jspb.Message.maybeInitEmptyExtensionObject_(a),a.extensionObject_[c]=\na.extensionObject_[c]||jspb.Message.EMPTY_LIST_SENTINEL_);if(f&&f.length)for(b=0;b<f.length;b++)jspb.Message.computeOneofCase(a,f[b])};goog.exportProperty(jspb.Message,\"initialize\",jspb.Message.initialize);jspb.Message.EMPTY_LIST_SENTINEL_=goog.DEBUG&&Object.freeze?Object.freeze([]):[];jspb.Message.isArray_=function(a){return jspb.Message.ASSUME_LOCAL_ARRAYS?a instanceof Array:Array.isArray(a)};\njspb.Message.isExtensionObject_=function(a){return null!==a&&\"object\"==typeof a&&!jspb.Message.isArray_(a)&&!(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)};jspb.Message.initPivotAndExtensionObject_=function(a,b){var c=a.array.length,d=-1;if(c&&(d=c-1,c=a.array[d],jspb.Message.isExtensionObject_(c))){a.pivot_=jspb.Message.getFieldNumber_(a,d);a.extensionObject_=c;return}-1<b?(a.pivot_=Math.max(b,jspb.Message.getFieldNumber_(a,d+1)),a.extensionObject_=null):a.pivot_=Number.MAX_VALUE};\njspb.Message.maybeInitEmptyExtensionObject_=function(a){var b=jspb.Message.getIndex_(a,a.pivot_);a.array[b]||(a.extensionObject_=a.array[b]={})};jspb.Message.toObjectList=function(a,b,c){for(var d=[],e=0;e<a.length;e++)d[e]=b.call(a[e],c,a[e]);return d};goog.exportProperty(jspb.Message,\"toObjectList\",jspb.Message.toObjectList);\njspb.Message.toObjectExtension=function(a,b,c,d,e){for(var f in c){var g=c[f],h=d.call(a,g);if(null!=h){for(var k in g.fieldName)if(g.fieldName.hasOwnProperty(k))break;b[k]=g.toObjectFn?g.isRepeated?jspb.Message.toObjectList(h,g.toObjectFn,e):g.toObjectFn(e,h):h}}};goog.exportProperty(jspb.Message,\"toObjectExtension\",jspb.Message.toObjectExtension);\njspb.Message.serializeBinaryExtensions=function(a,b,c,d){for(var e in c){var f=c[e],g=f.fieldInfo;if(!f.binaryWriterFn)throw Error(\"Message extension present that was generated without binary serialization support\");var h=d.call(a,g);if(null!=h)if(g.isMessageType())if(f.binaryMessageSerializeFn)f.binaryWriterFn.call(b,g.fieldIndex,h,f.binaryMessageSerializeFn);else throw Error(\"Message extension present holding submessage without binary support enabled, and message is being serialized to binary format\");\nelse f.binaryWriterFn.call(b,g.fieldIndex,h)}};goog.exportProperty(jspb.Message,\"serializeBinaryExtensions\",jspb.Message.serializeBinaryExtensions);\njspb.Message.readBinaryExtension=function(a,b,c,d,e){var f=c[b.getFieldNumber()];if(f){c=f.fieldInfo;if(!f.binaryReaderFn)throw Error(\"Deserializing extension whose generated code does not support binary format\");if(c.isMessageType()){var g=new c.ctor;f.binaryReaderFn.call(b,g,f.binaryMessageDeserializeFn)}else g=f.binaryReaderFn.call(b);c.isRepeated&&!f.isPacked?(b=d.call(a,c))?b.push(g):e.call(a,c,[g]):e.call(a,c,g)}else b.skipField()};goog.exportProperty(jspb.Message,\"readBinaryExtension\",jspb.Message.readBinaryExtension);\njspb.Message.getField=function(a,b){if(b<a.pivot_){b=jspb.Message.getIndex_(a,b);var c=a.array[b];return c===jspb.Message.EMPTY_LIST_SENTINEL_?a.array[b]=[]:c}if(a.extensionObject_)return c=a.extensionObject_[b],c===jspb.Message.EMPTY_LIST_SENTINEL_?a.extensionObject_[b]=[]:c};goog.exportProperty(jspb.Message,\"getField\",jspb.Message.getField);jspb.Message.getRepeatedField=function(a,b){return jspb.Message.getField(a,b)};goog.exportProperty(jspb.Message,\"getRepeatedField\",jspb.Message.getRepeatedField);\njspb.Message.getOptionalFloatingPointField=function(a,b){a=jspb.Message.getField(a,b);return null==a?a:+a};goog.exportProperty(jspb.Message,\"getOptionalFloatingPointField\",jspb.Message.getOptionalFloatingPointField);jspb.Message.getBooleanField=function(a,b){a=jspb.Message.getField(a,b);return null==a?a:!!a};goog.exportProperty(jspb.Message,\"getBooleanField\",jspb.Message.getBooleanField);\njspb.Message.getRepeatedFloatingPointField=function(a,b){var c=jspb.Message.getRepeatedField(a,b);a.convertedPrimitiveFields_||(a.convertedPrimitiveFields_={});if(!a.convertedPrimitiveFields_[b]){for(var d=0;d<c.length;d++)c[d]=+c[d];a.convertedPrimitiveFields_[b]=!0}return c};goog.exportProperty(jspb.Message,\"getRepeatedFloatingPointField\",jspb.Message.getRepeatedFloatingPointField);\njspb.Message.getRepeatedBooleanField=function(a,b){var c=jspb.Message.getRepeatedField(a,b);a.convertedPrimitiveFields_||(a.convertedPrimitiveFields_={});if(!a.convertedPrimitiveFields_[b]){for(var d=0;d<c.length;d++)c[d]=!!c[d];a.convertedPrimitiveFields_[b]=!0}return c};goog.exportProperty(jspb.Message,\"getRepeatedBooleanField\",jspb.Message.getRepeatedBooleanField);\njspb.Message.bytesAsB64=function(a){if(null==a||\"string\"===typeof a)return a;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return goog.crypt.base64.encodeByteArray(a);jspb.asserts.fail(\"Cannot coerce to b64 string: \"+goog.typeOf(a));return null};goog.exportProperty(jspb.Message,\"bytesAsB64\",jspb.Message.bytesAsB64);\njspb.Message.bytesAsU8=function(a){if(null==a||a instanceof Uint8Array)return a;if(\"string\"===typeof a)return goog.crypt.base64.decodeStringToUint8Array(a);jspb.asserts.fail(\"Cannot coerce to Uint8Array: \"+goog.typeOf(a));return null};goog.exportProperty(jspb.Message,\"bytesAsU8\",jspb.Message.bytesAsU8);jspb.Message.bytesListAsB64=function(a){jspb.Message.assertConsistentTypes_(a);return a.length&&\"string\"!==typeof a[0]?goog.array.map(a,jspb.Message.bytesAsB64):a};\ngoog.exportProperty(jspb.Message,\"bytesListAsB64\",jspb.Message.bytesListAsB64);jspb.Message.bytesListAsU8=function(a){jspb.Message.assertConsistentTypes_(a);return!a.length||a[0]instanceof Uint8Array?a:goog.array.map(a,jspb.Message.bytesAsU8)};goog.exportProperty(jspb.Message,\"bytesListAsU8\",jspb.Message.bytesListAsU8);\njspb.Message.assertConsistentTypes_=function(a){if(goog.DEBUG&&a&&1<a.length){var b=goog.typeOf(a[0]);goog.array.forEach(a,function(a){goog.typeOf(a)!=b&&jspb.asserts.fail(\"Inconsistent type in JSPB repeated field array. Got \"+goog.typeOf(a)+\" expected \"+b)})}};jspb.Message.getFieldWithDefault=function(a,b,c){a=jspb.Message.getField(a,b);return null==a?c:a};goog.exportProperty(jspb.Message,\"getFieldWithDefault\",jspb.Message.getFieldWithDefault);\njspb.Message.getBooleanFieldWithDefault=function(a,b,c){a=jspb.Message.getBooleanField(a,b);return null==a?c:a};goog.exportProperty(jspb.Message,\"getBooleanFieldWithDefault\",jspb.Message.getBooleanFieldWithDefault);jspb.Message.getFloatingPointFieldWithDefault=function(a,b,c){a=jspb.Message.getOptionalFloatingPointField(a,b);return null==a?c:a};goog.exportProperty(jspb.Message,\"getFloatingPointFieldWithDefault\",jspb.Message.getFloatingPointFieldWithDefault);jspb.Message.getFieldProto3=jspb.Message.getFieldWithDefault;\ngoog.exportProperty(jspb.Message,\"getFieldProto3\",jspb.Message.getFieldProto3);jspb.Message.getMapField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(b in a.wrappers_)return a.wrappers_[b];var e=jspb.Message.getField(a,b);if(!e){if(c)return;e=[];jspb.Message.setField(a,b,e)}return a.wrappers_[b]=new jspb.Map(e,d)};goog.exportProperty(jspb.Message,\"getMapField\",jspb.Message.getMapField);\njspb.Message.setField=function(a,b,c){jspb.asserts.assertInstanceof(a,jspb.Message);b<a.pivot_?a.array[jspb.Message.getIndex_(a,b)]=c:(jspb.Message.maybeInitEmptyExtensionObject_(a),a.extensionObject_[b]=c);return a};goog.exportProperty(jspb.Message,\"setField\",jspb.Message.setField);jspb.Message.setProto3IntField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};goog.exportProperty(jspb.Message,\"setProto3IntField\",jspb.Message.setProto3IntField);\njspb.Message.setProto3FloatField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};goog.exportProperty(jspb.Message,\"setProto3FloatField\",jspb.Message.setProto3FloatField);jspb.Message.setProto3BooleanField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,!1)};goog.exportProperty(jspb.Message,\"setProto3BooleanField\",jspb.Message.setProto3BooleanField);jspb.Message.setProto3StringField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,\"\")};\ngoog.exportProperty(jspb.Message,\"setProto3StringField\",jspb.Message.setProto3StringField);jspb.Message.setProto3BytesField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,\"\")};goog.exportProperty(jspb.Message,\"setProto3BytesField\",jspb.Message.setProto3BytesField);jspb.Message.setProto3EnumField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,0)};goog.exportProperty(jspb.Message,\"setProto3EnumField\",jspb.Message.setProto3EnumField);\njspb.Message.setProto3StringIntField=function(a,b,c){return jspb.Message.setFieldIgnoringDefault_(a,b,c,\"0\")};goog.exportProperty(jspb.Message,\"setProto3StringIntField\",jspb.Message.setProto3StringIntField);jspb.Message.setFieldIgnoringDefault_=function(a,b,c,d){jspb.asserts.assertInstanceof(a,jspb.Message);c!==d?jspb.Message.setField(a,b,c):b<a.pivot_?a.array[jspb.Message.getIndex_(a,b)]=null:(jspb.Message.maybeInitEmptyExtensionObject_(a),delete a.extensionObject_[b]);return a};\njspb.Message.addToRepeatedField=function(a,b,c,d){jspb.asserts.assertInstanceof(a,jspb.Message);b=jspb.Message.getRepeatedField(a,b);void 0!=d?b.splice(d,0,c):b.push(c);return a};goog.exportProperty(jspb.Message,\"addToRepeatedField\",jspb.Message.addToRepeatedField);\njspb.Message.setOneofField=function(a,b,c,d){jspb.asserts.assertInstanceof(a,jspb.Message);(c=jspb.Message.computeOneofCase(a,c))&&c!==b&&void 0!==d&&(a.wrappers_&&c in a.wrappers_&&(a.wrappers_[c]=void 0),jspb.Message.setField(a,c,void 0));return jspb.Message.setField(a,b,d)};goog.exportProperty(jspb.Message,\"setOneofField\",jspb.Message.setOneofField);\njspb.Message.computeOneofCase=function(a,b){for(var c,d,e=0;e<b.length;e++){var f=b[e],g=jspb.Message.getField(a,f);null!=g&&(c=f,d=g,jspb.Message.setField(a,f,void 0))}return c?(jspb.Message.setField(a,c,d),c):0};goog.exportProperty(jspb.Message,\"computeOneofCase\",jspb.Message.computeOneofCase);jspb.Message.getWrapperField=function(a,b,c,d){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){var e=jspb.Message.getField(a,c);if(d||e)a.wrappers_[c]=new b(e)}return a.wrappers_[c]};\ngoog.exportProperty(jspb.Message,\"getWrapperField\",jspb.Message.getWrapperField);jspb.Message.getRepeatedWrapperField=function(a,b,c){jspb.Message.wrapRepeatedField_(a,b,c);b=a.wrappers_[c];b==jspb.Message.EMPTY_LIST_SENTINEL_&&(b=a.wrappers_[c]=[]);return b};goog.exportProperty(jspb.Message,\"getRepeatedWrapperField\",jspb.Message.getRepeatedWrapperField);\njspb.Message.wrapRepeatedField_=function(a,b,c){a.wrappers_||(a.wrappers_={});if(!a.wrappers_[c]){for(var d=jspb.Message.getRepeatedField(a,c),e=[],f=0;f<d.length;f++)e[f]=new b(d[f]);a.wrappers_[c]=e}};jspb.Message.setWrapperField=function(a,b,c){jspb.asserts.assertInstanceof(a,jspb.Message);a.wrappers_||(a.wrappers_={});var d=c?c.toArray():c;a.wrappers_[b]=c;return jspb.Message.setField(a,b,d)};goog.exportProperty(jspb.Message,\"setWrapperField\",jspb.Message.setWrapperField);\njspb.Message.setOneofWrapperField=function(a,b,c,d){jspb.asserts.assertInstanceof(a,jspb.Message);a.wrappers_||(a.wrappers_={});var e=d?d.toArray():d;a.wrappers_[b]=d;return jspb.Message.setOneofField(a,b,c,e)};goog.exportProperty(jspb.Message,\"setOneofWrapperField\",jspb.Message.setOneofWrapperField);\njspb.Message.setRepeatedWrapperField=function(a,b,c){jspb.asserts.assertInstanceof(a,jspb.Message);a.wrappers_||(a.wrappers_={});c=c||[];for(var d=[],e=0;e<c.length;e++)d[e]=c[e].toArray();a.wrappers_[b]=c;return jspb.Message.setField(a,b,d)};goog.exportProperty(jspb.Message,\"setRepeatedWrapperField\",jspb.Message.setRepeatedWrapperField);\njspb.Message.addToRepeatedWrapperField=function(a,b,c,d,e){jspb.Message.wrapRepeatedField_(a,d,b);var f=a.wrappers_[b];f||(f=a.wrappers_[b]=[]);c=c?c:new d;a=jspb.Message.getRepeatedField(a,b);void 0!=e?(f.splice(e,0,c),a.splice(e,0,c.toArray())):(f.push(c),a.push(c.toArray()));return c};goog.exportProperty(jspb.Message,\"addToRepeatedWrapperField\",jspb.Message.addToRepeatedWrapperField);\njspb.Message.toMap=function(a,b,c,d){for(var e={},f=0;f<a.length;f++)e[b.call(a[f])]=c?c.call(a[f],d,a[f]):a[f];return e};goog.exportProperty(jspb.Message,\"toMap\",jspb.Message.toMap);jspb.Message.prototype.syncMapFields_=function(){if(this.wrappers_)for(var a in this.wrappers_){var b=this.wrappers_[a];if(Array.isArray(b))for(var c=0;c<b.length;c++)b[c]&&b[c].toArray();else b&&b.toArray()}};jspb.Message.prototype.toArray=function(){this.syncMapFields_();return this.array};\ngoog.exportProperty(jspb.Message.prototype,\"toArray\",jspb.Message.prototype.toArray);jspb.Message.GENERATE_TO_STRING&&(jspb.Message.prototype.toString=function(){this.syncMapFields_();return this.array.toString()});\njspb.Message.prototype.getExtension=function(a){if(this.extensionObject_){this.wrappers_||(this.wrappers_={});var b=a.fieldIndex;if(a.isRepeated){if(a.isMessageType())return this.wrappers_[b]||(this.wrappers_[b]=goog.array.map(this.extensionObject_[b]||[],function(b){return new a.ctor(b)})),this.wrappers_[b]}else if(a.isMessageType())return!this.wrappers_[b]&&this.extensionObject_[b]&&(this.wrappers_[b]=new a.ctor(this.extensionObject_[b])),this.wrappers_[b];return this.extensionObject_[b]}};\ngoog.exportProperty(jspb.Message.prototype,\"getExtension\",jspb.Message.prototype.getExtension);\njspb.Message.prototype.setExtension=function(a,b){this.wrappers_||(this.wrappers_={});jspb.Message.maybeInitEmptyExtensionObject_(this);var c=a.fieldIndex;a.isRepeated?(b=b||[],a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=goog.array.map(b,function(a){return a.toArray()})):this.extensionObject_[c]=b):a.isMessageType()?(this.wrappers_[c]=b,this.extensionObject_[c]=b?b.toArray():b):this.extensionObject_[c]=b;return this};goog.exportProperty(jspb.Message.prototype,\"setExtension\",jspb.Message.prototype.setExtension);\njspb.Message.difference=function(a,b){if(!(a instanceof b.constructor))throw Error(\"Messages have different types.\");var c=a.toArray();b=b.toArray();var d=[],e=0,f=c.length>b.length?c.length:b.length;a.getJsPbMessageId()&&(d[0]=a.getJsPbMessageId(),e=1);for(;e<f;e++)jspb.Message.compareFields(c[e],b[e])||(d[e]=b[e]);return new a.constructor(d)};goog.exportProperty(jspb.Message,\"difference\",jspb.Message.difference);\njspb.Message.equals=function(a,b){return a==b||!(!a||!b)&&a instanceof b.constructor&&jspb.Message.compareFields(a.toArray(),b.toArray())};goog.exportProperty(jspb.Message,\"equals\",jspb.Message.equals);jspb.Message.compareExtensions=function(a,b){a=a||{};b=b||{};var c={},d;for(d in a)c[d]=0;for(d in b)c[d]=0;for(d in c)if(!jspb.Message.compareFields(a[d],b[d]))return!1;return!0};goog.exportProperty(jspb.Message,\"compareExtensions\",jspb.Message.compareExtensions);\njspb.Message.compareFields=function(a,b){if(a==b)return!0;if(!goog.isObject(a)||!goog.isObject(b))return\"number\"===typeof a&&isNaN(a)||\"number\"===typeof b&&isNaN(b)?String(a)==String(b):!1;if(a.constructor!=b.constructor)return!1;if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a.constructor===Uint8Array){if(a.length!=b.length)return!1;for(var c=0;c<a.length;c++)if(a[c]!=b[c])return!1;return!0}if(a.constructor===Array){var d=void 0,e=void 0,f=Math.max(a.length,b.length);for(c=0;c<f;c++){var g=a[c],h=b[c];g&&\ng.constructor==Object&&(jspb.asserts.assert(void 0===d),jspb.asserts.assert(c===a.length-1),d=g,g=void 0);h&&h.constructor==Object&&(jspb.asserts.assert(void 0===e),jspb.asserts.assert(c===b.length-1),e=h,h=void 0);if(!jspb.Message.compareFields(g,h))return!1}return d||e?(d=d||{},e=e||{},jspb.Message.compareExtensions(d,e)):!0}if(a.constructor===Object)return jspb.Message.compareExtensions(a,b);throw Error(\"Invalid type in JSPB array\");};goog.exportProperty(jspb.Message,\"compareFields\",jspb.Message.compareFields);\njspb.Message.prototype.cloneMessage=function(){return jspb.Message.cloneMessage(this)};goog.exportProperty(jspb.Message.prototype,\"cloneMessage\",jspb.Message.prototype.cloneMessage);jspb.Message.prototype.clone=function(){return jspb.Message.cloneMessage(this)};goog.exportProperty(jspb.Message.prototype,\"clone\",jspb.Message.prototype.clone);jspb.Message.clone=function(a){return jspb.Message.cloneMessage(a)};goog.exportProperty(jspb.Message,\"clone\",jspb.Message.clone);jspb.Message.cloneMessage=function(a){return new a.constructor(jspb.Message.clone_(a.toArray()))};\njspb.Message.copyInto=function(a,b){jspb.asserts.assertInstanceof(a,jspb.Message);jspb.asserts.assertInstanceof(b,jspb.Message);jspb.asserts.assert(a.constructor==b.constructor,\"Copy source and target message should have the same type.\");a=jspb.Message.clone(a);for(var c=b.toArray(),d=a.toArray(),e=c.length=0;e<d.length;e++)c[e]=d[e];b.wrappers_=a.wrappers_;b.extensionObject_=a.extensionObject_};goog.exportProperty(jspb.Message,\"copyInto\",jspb.Message.copyInto);\njspb.Message.clone_=function(a){if(Array.isArray(a)){for(var b=Array(a.length),c=0;c<a.length;c++){var d=a[c];null!=d&&(b[c]=\"object\"==typeof d?jspb.Message.clone_(jspb.asserts.assert(d)):d)}return b}if(jspb.Message.SUPPORTS_UINT8ARRAY_&&a instanceof Uint8Array)return new Uint8Array(a);b={};for(c in a)d=a[c],null!=d&&(b[c]=\"object\"==typeof d?jspb.Message.clone_(jspb.asserts.assert(d)):d);return b};jspb.Message.registerMessageType=function(a,b){b.messageId=a};\ngoog.exportProperty(jspb.Message,\"registerMessageType\",jspb.Message.registerMessageType);jspb.Message.messageSetExtensions={};jspb.Message.messageSetExtensionsBinary={};jspb.Export={};\"object\"===typeof exports&&(exports.Map=jspb.Map,exports.Message=jspb.Message,exports.BinaryReader=jspb.BinaryReader,exports.BinaryWriter=jspb.BinaryWriter,exports.ExtensionFieldInfo=jspb.ExtensionFieldInfo,exports.ExtensionFieldBinaryInfo=jspb.ExtensionFieldBinaryInfo,exports.exportSymbol=goog.exportSymbol,exports.inherits=goog.inherits,exports.object={extend:goog.object.extend},exports.typeOf=goog.typeOf);\n","// source: mediapipe/framework/calculator_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.CalculatorOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.CalculatorOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 2, null, null);\n};\ngoog.inherits(proto.mediapipe.CalculatorOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.CalculatorOptions.displayName = 'proto.mediapipe.CalculatorOptions';\n}\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldInfo>}\n */\nproto.mediapipe.CalculatorOptions.extensions = {};\n\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldBinaryInfo>}\n */\nproto.mediapipe.CalculatorOptions.extensionsBinary = {};\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.CalculatorOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.CalculatorOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.CalculatorOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n mergeFields: (f = jspb.Message.getBooleanField(msg, 1)) == null ? undefined : f\n };\n\n jspb.Message.toObjectExtension(/** @type {!jspb.Message} */ (msg), obj,\n proto.mediapipe.CalculatorOptions.extensions, proto.mediapipe.CalculatorOptions.prototype.getExtension,\n includeInstance);\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.CalculatorOptions}\n */\nproto.mediapipe.CalculatorOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.CalculatorOptions;\n return proto.mediapipe.CalculatorOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.CalculatorOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.CalculatorOptions}\n */\nproto.mediapipe.CalculatorOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setMergeFields(value);\n break;\n default:\n jspb.Message.readBinaryExtension(msg, reader,\n proto.mediapipe.CalculatorOptions.extensionsBinary,\n proto.mediapipe.CalculatorOptions.prototype.getExtension,\n proto.mediapipe.CalculatorOptions.prototype.setExtension);\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.CalculatorOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.CalculatorOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.CalculatorOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {boolean} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBool(\n 1,\n f\n );\n }\n jspb.Message.serializeBinaryExtensions(message, writer,\n proto.mediapipe.CalculatorOptions.extensionsBinary, proto.mediapipe.CalculatorOptions.prototype.getExtension);\n};\n\n\n/**\n * optional bool merge_fields = 1;\n * @return {boolean}\n */\nproto.mediapipe.CalculatorOptions.prototype.getMergeFields = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.CalculatorOptions} returns this\n */\nproto.mediapipe.CalculatorOptions.prototype.setMergeFields = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.CalculatorOptions} returns this\n */\nproto.mediapipe.CalculatorOptions.prototype.clearMergeFields = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorOptions.prototype.hasMergeFields = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: google/protobuf/any.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.google.protobuf.Any', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.google.protobuf.Any = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.google.protobuf.Any, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.google.protobuf.Any.displayName = 'proto.google.protobuf.Any';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.google.protobuf.Any.prototype.toObject = function(opt_includeInstance) {\n return proto.google.protobuf.Any.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.google.protobuf.Any} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.toObject = function(includeInstance, msg) {\n var f, obj = {\n typeUrl: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n value: msg.getValue_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.google.protobuf.Any;\n return proto.google.protobuf.Any.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.google.protobuf.Any} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.google.protobuf.Any}\n */\nproto.google.protobuf.Any.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTypeUrl(value);\n break;\n case 2:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setValue(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.google.protobuf.Any.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.google.protobuf.Any} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.google.protobuf.Any.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTypeUrl();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getValue_asU8();\n if (f.length > 0) {\n writer.writeBytes(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string type_url = 1;\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getTypeUrl = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setTypeUrl = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bytes value = 2;\n * @return {!(string|Uint8Array)}\n */\nproto.google.protobuf.Any.prototype.getValue = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * optional bytes value = 2;\n * This is a type-conversion wrapper around `getValue()`\n * @return {string}\n */\nproto.google.protobuf.Any.prototype.getValue_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getValue()));\n};\n\n\n/**\n * optional bytes value = 2;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getValue()`\n * @return {!Uint8Array}\n */\nproto.google.protobuf.Any.prototype.getValue_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getValue()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.google.protobuf.Any} returns this\n */\nproto.google.protobuf.Any.prototype.setValue = function(value) {\n return jspb.Message.setProto3BytesField(this, 2, value);\n};\n\n\ngoog.object.extend(exports, proto.google.protobuf);\n/* This code will be inserted into generated code for\n * google/protobuf/any.proto. */\n\n/**\n * Returns the type name contained in this instance, if any.\n * @return {string|undefined}\n */\nproto.google.protobuf.Any.prototype.getTypeName = function() {\n return this.getTypeUrl().split('/').pop();\n};\n\n\n/**\n * Packs the given message instance into this Any.\n * For binary format usage only.\n * @param {!Uint8Array} serialized The serialized data to pack.\n * @param {string} name The type name of this message object.\n * @param {string=} opt_typeUrlPrefix the type URL prefix.\n */\nproto.google.protobuf.Any.prototype.pack = function(serialized, name,\n opt_typeUrlPrefix) {\n if (!opt_typeUrlPrefix) {\n opt_typeUrlPrefix = 'type.googleapis.com/';\n }\n\n if (opt_typeUrlPrefix.substr(-1) != '/') {\n this.setTypeUrl(opt_typeUrlPrefix + '/' + name);\n } else {\n this.setTypeUrl(opt_typeUrlPrefix + name);\n }\n\n this.setValue(serialized);\n};\n\n\n/**\n * @template T\n * Unpacks this Any into the given message object.\n * @param {function(Uint8Array):T} deserialize Function that will deserialize\n * the binary data properly.\n * @param {string} name The expected type name of this message object.\n * @return {?T} If the name matched the expected name, returns the deserialized\n * object, otherwise returns null.\n */\nproto.google.protobuf.Any.prototype.unpack = function(deserialize, name) {\n if (this.getTypeName() == name) {\n return deserialize(this.getValue_asU8());\n } else {\n return null;\n }\n};\n","// source: mediapipe/framework/mediapipe_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.MediaPipeOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.MediaPipeOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 1, null, null);\n};\ngoog.inherits(proto.mediapipe.MediaPipeOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.MediaPipeOptions.displayName = 'proto.mediapipe.MediaPipeOptions';\n}\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldInfo>}\n */\nproto.mediapipe.MediaPipeOptions.extensions = {};\n\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldBinaryInfo>}\n */\nproto.mediapipe.MediaPipeOptions.extensionsBinary = {};\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.MediaPipeOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.MediaPipeOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.MediaPipeOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.MediaPipeOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n jspb.Message.toObjectExtension(/** @type {!jspb.Message} */ (msg), obj,\n proto.mediapipe.MediaPipeOptions.extensions, proto.mediapipe.MediaPipeOptions.prototype.getExtension,\n includeInstance);\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.MediaPipeOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.MediaPipeOptions;\n return proto.mediapipe.MediaPipeOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.MediaPipeOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.MediaPipeOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n jspb.Message.readBinaryExtension(msg, reader,\n proto.mediapipe.MediaPipeOptions.extensionsBinary,\n proto.mediapipe.MediaPipeOptions.prototype.getExtension,\n proto.mediapipe.MediaPipeOptions.prototype.setExtension);\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.MediaPipeOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.MediaPipeOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.MediaPipeOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.MediaPipeOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n jspb.Message.serializeBinaryExtensions(message, writer,\n proto.mediapipe.MediaPipeOptions.extensionsBinary, proto.mediapipe.MediaPipeOptions.prototype.getExtension);\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/framework/packet_factory.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.PacketFactoryConfig', null, global);\ngoog.exportSymbol('proto.mediapipe.PacketFactoryOptions', null, global);\ngoog.exportSymbol('proto.mediapipe.PacketManagerConfig', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.PacketFactoryOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 1, null, null);\n};\ngoog.inherits(proto.mediapipe.PacketFactoryOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.PacketFactoryOptions.displayName = 'proto.mediapipe.PacketFactoryOptions';\n}\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldInfo>}\n */\nproto.mediapipe.PacketFactoryOptions.extensions = {};\n\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldBinaryInfo>}\n */\nproto.mediapipe.PacketFactoryOptions.extensionsBinary = {};\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.PacketFactoryConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, null, null);\n};\ngoog.inherits(proto.mediapipe.PacketFactoryConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.PacketFactoryConfig.displayName = 'proto.mediapipe.PacketFactoryConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.PacketManagerConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.PacketManagerConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.PacketManagerConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.PacketManagerConfig.displayName = 'proto.mediapipe.PacketManagerConfig';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.PacketFactoryOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.PacketFactoryOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.PacketFactoryOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketFactoryOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n jspb.Message.toObjectExtension(/** @type {!jspb.Message} */ (msg), obj,\n proto.mediapipe.PacketFactoryOptions.extensions, proto.mediapipe.PacketFactoryOptions.prototype.getExtension,\n includeInstance);\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.PacketFactoryOptions}\n */\nproto.mediapipe.PacketFactoryOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.PacketFactoryOptions;\n return proto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.PacketFactoryOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.PacketFactoryOptions}\n */\nproto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n jspb.Message.readBinaryExtension(msg, reader,\n proto.mediapipe.PacketFactoryOptions.extensionsBinary,\n proto.mediapipe.PacketFactoryOptions.prototype.getExtension,\n proto.mediapipe.PacketFactoryOptions.prototype.setExtension);\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.PacketFactoryOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.PacketFactoryOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n jspb.Message.serializeBinaryExtensions(message, writer,\n proto.mediapipe.PacketFactoryOptions.extensionsBinary, proto.mediapipe.PacketFactoryOptions.prototype.getExtension);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.PacketFactoryConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.PacketFactoryConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketFactoryConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n packetFactory: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n outputSidePacket: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n externalOutput: (f = jspb.Message.getField(msg, 1002)) == null ? undefined : f,\n options: (f = msg.getOptions()) && proto.mediapipe.PacketFactoryOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.PacketFactoryConfig}\n */\nproto.mediapipe.PacketFactoryConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.PacketFactoryConfig;\n return proto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.PacketFactoryConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.PacketFactoryConfig}\n */\nproto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setPacketFactory(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setOutputSidePacket(value);\n break;\n case 1002:\n var value = /** @type {string} */ (reader.readString());\n msg.setExternalOutput(value);\n break;\n case 3:\n var value = new proto.mediapipe.PacketFactoryOptions;\n reader.readMessage(value,proto.mediapipe.PacketFactoryOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.PacketFactoryConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 1002));\n if (f != null) {\n writer.writeString(\n 1002,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.mediapipe.PacketFactoryOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string packet_factory = 1;\n * @return {string}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.getPacketFactory = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.setPacketFactory = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.clearPacketFactory = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.hasPacketFactory = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional string output_side_packet = 2;\n * @return {string}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.getOutputSidePacket = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.setOutputSidePacket = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.clearOutputSidePacket = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.hasOutputSidePacket = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string external_output = 1002;\n * @return {string}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.getExternalOutput = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1002, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.setExternalOutput = function(value) {\n return jspb.Message.setField(this, 1002, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.clearExternalOutput = function() {\n return jspb.Message.setField(this, 1002, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.hasExternalOutput = function() {\n return jspb.Message.getField(this, 1002) != null;\n};\n\n\n/**\n * optional PacketFactoryOptions options = 3;\n * @return {?proto.mediapipe.PacketFactoryOptions}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.PacketFactoryOptions} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.PacketFactoryOptions, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.PacketFactoryOptions|undefined} value\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n*/\nproto.mediapipe.PacketFactoryConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.PacketFactoryConfig} returns this\n */\nproto.mediapipe.PacketFactoryConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketFactoryConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.PacketManagerConfig.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.PacketManagerConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.PacketManagerConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.PacketManagerConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketManagerConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n packetList: jspb.Message.toObjectList(msg.getPacketList(),\n proto.mediapipe.PacketFactoryConfig.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.PacketManagerConfig}\n */\nproto.mediapipe.PacketManagerConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.PacketManagerConfig;\n return proto.mediapipe.PacketManagerConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.PacketManagerConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.PacketManagerConfig}\n */\nproto.mediapipe.PacketManagerConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.PacketFactoryConfig;\n reader.readMessage(value,proto.mediapipe.PacketFactoryConfig.deserializeBinaryFromReader);\n msg.addPacket(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.PacketManagerConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.PacketManagerConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.PacketManagerConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketManagerConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getPacketList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.PacketFactoryConfig.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated PacketFactoryConfig packet = 1;\n * @return {!Array<!proto.mediapipe.PacketFactoryConfig>}\n */\nproto.mediapipe.PacketManagerConfig.prototype.getPacketList = function() {\n return /** @type{!Array<!proto.mediapipe.PacketFactoryConfig>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.PacketFactoryConfig, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.PacketFactoryConfig>} value\n * @return {!proto.mediapipe.PacketManagerConfig} returns this\n*/\nproto.mediapipe.PacketManagerConfig.prototype.setPacketList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.PacketFactoryConfig=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketFactoryConfig}\n */\nproto.mediapipe.PacketManagerConfig.prototype.addPacket = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.PacketFactoryConfig, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.PacketManagerConfig} returns this\n */\nproto.mediapipe.PacketManagerConfig.prototype.clearPacketList = function() {\n return this.setPacketList([]);\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/framework/packet_generator.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.PacketGeneratorConfig', null, global);\ngoog.exportSymbol('proto.mediapipe.PacketGeneratorOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.PacketGeneratorOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 2, null, null);\n};\ngoog.inherits(proto.mediapipe.PacketGeneratorOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.PacketGeneratorOptions.displayName = 'proto.mediapipe.PacketGeneratorOptions';\n}\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldInfo>}\n */\nproto.mediapipe.PacketGeneratorOptions.extensions = {};\n\n\n/**\n * The extensions registered with this message class. This is a map of\n * extension field number to fieldInfo object.\n *\n * For example:\n * { 123: {fieldIndex: 123, fieldName: {my_field_name: 0}, ctor: proto.example.MyMessage} }\n *\n * fieldName contains the JsCompiler renamed field name property so that it\n * works in OPTIMIZED mode.\n *\n * @type {!Object<number, jspb.ExtensionFieldBinaryInfo>}\n */\nproto.mediapipe.PacketGeneratorOptions.extensionsBinary = {};\n\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.PacketGeneratorConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, proto.mediapipe.PacketGeneratorConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.PacketGeneratorConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.PacketGeneratorConfig.displayName = 'proto.mediapipe.PacketGeneratorConfig';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.PacketGeneratorOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.PacketGeneratorOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketGeneratorOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n mergeFields: jspb.Message.getBooleanFieldWithDefault(msg, 1, true)\n };\n\n jspb.Message.toObjectExtension(/** @type {!jspb.Message} */ (msg), obj,\n proto.mediapipe.PacketGeneratorOptions.extensions, proto.mediapipe.PacketGeneratorOptions.prototype.getExtension,\n includeInstance);\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.PacketGeneratorOptions}\n */\nproto.mediapipe.PacketGeneratorOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.PacketGeneratorOptions;\n return proto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.PacketGeneratorOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.PacketGeneratorOptions}\n */\nproto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setMergeFields(value);\n break;\n default:\n jspb.Message.readBinaryExtension(msg, reader,\n proto.mediapipe.PacketGeneratorOptions.extensionsBinary,\n proto.mediapipe.PacketGeneratorOptions.prototype.getExtension,\n proto.mediapipe.PacketGeneratorOptions.prototype.setExtension);\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.PacketGeneratorOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {boolean} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBool(\n 1,\n f\n );\n }\n jspb.Message.serializeBinaryExtensions(message, writer,\n proto.mediapipe.PacketGeneratorOptions.extensionsBinary, proto.mediapipe.PacketGeneratorOptions.prototype.getExtension);\n};\n\n\n/**\n * optional bool merge_fields = 1;\n * @return {boolean}\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.getMergeFields = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, true));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.PacketGeneratorOptions} returns this\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.setMergeFields = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.PacketGeneratorOptions} returns this\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.clearMergeFields = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketGeneratorOptions.prototype.hasMergeFields = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.PacketGeneratorConfig.repeatedFields_ = [2,1002,3,1003];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.PacketGeneratorConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.PacketGeneratorConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketGeneratorConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n packetGenerator: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n inputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n externalInputList: (f = jspb.Message.getRepeatedField(msg, 1002)) == null ? undefined : f,\n outputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,\n externalOutputList: (f = jspb.Message.getRepeatedField(msg, 1003)) == null ? undefined : f,\n options: (f = msg.getOptions()) && proto.mediapipe.PacketGeneratorOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.PacketGeneratorConfig}\n */\nproto.mediapipe.PacketGeneratorConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.PacketGeneratorConfig;\n return proto.mediapipe.PacketGeneratorConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.PacketGeneratorConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.PacketGeneratorConfig}\n */\nproto.mediapipe.PacketGeneratorConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setPacketGenerator(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputSidePacket(value);\n break;\n case 1002:\n var value = /** @type {string} */ (reader.readString());\n msg.addExternalInput(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addOutputSidePacket(value);\n break;\n case 1003:\n var value = /** @type {string} */ (reader.readString());\n msg.addExternalOutput(value);\n break;\n case 4:\n var value = new proto.mediapipe.PacketGeneratorOptions;\n reader.readMessage(value,proto.mediapipe.PacketGeneratorOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.PacketGeneratorConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.PacketGeneratorConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.PacketGeneratorConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getInputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 2,\n f\n );\n }\n f = message.getExternalInputList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1002,\n f\n );\n }\n f = message.getOutputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n f = message.getExternalOutputList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1003,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.mediapipe.PacketGeneratorOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string packet_generator = 1;\n * @return {string}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getPacketGenerator = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.setPacketGenerator = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearPacketGenerator = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.hasPacketGenerator = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated string input_side_packet = 2;\n * @return {!Array<string>}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getInputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.setInputSidePacketList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.addInputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearInputSidePacketList = function() {\n return this.setInputSidePacketList([]);\n};\n\n\n/**\n * repeated string external_input = 1002;\n * @return {!Array<string>}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getExternalInputList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1002));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.setExternalInputList = function(value) {\n return jspb.Message.setField(this, 1002, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.addExternalInput = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1002, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearExternalInputList = function() {\n return this.setExternalInputList([]);\n};\n\n\n/**\n * repeated string output_side_packet = 3;\n * @return {!Array<string>}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getOutputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.setOutputSidePacketList = function(value) {\n return jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.addOutputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearOutputSidePacketList = function() {\n return this.setOutputSidePacketList([]);\n};\n\n\n/**\n * repeated string external_output = 1003;\n * @return {!Array<string>}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getExternalOutputList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1003));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.setExternalOutputList = function(value) {\n return jspb.Message.setField(this, 1003, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.addExternalOutput = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1003, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearExternalOutputList = function() {\n return this.setExternalOutputList([]);\n};\n\n\n/**\n * optional PacketGeneratorOptions options = 4;\n * @return {?proto.mediapipe.PacketGeneratorOptions}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.PacketGeneratorOptions} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.PacketGeneratorOptions, 4));\n};\n\n\n/**\n * @param {?proto.mediapipe.PacketGeneratorOptions|undefined} value\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n*/\nproto.mediapipe.PacketGeneratorConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.PacketGeneratorConfig} returns this\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.PacketGeneratorConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/framework/status_handler.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_mediapipe_options_pb = require('../../mediapipe/framework/mediapipe_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_mediapipe_options_pb);\ngoog.exportSymbol('proto.mediapipe.StatusHandlerConfig', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.StatusHandlerConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, proto.mediapipe.StatusHandlerConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.StatusHandlerConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.StatusHandlerConfig.displayName = 'proto.mediapipe.StatusHandlerConfig';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.StatusHandlerConfig.repeatedFields_ = [2,1002];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.StatusHandlerConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.StatusHandlerConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.StatusHandlerConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n statusHandler: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n inputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n externalInputList: (f = jspb.Message.getRepeatedField(msg, 1002)) == null ? undefined : f,\n options: (f = msg.getOptions()) && mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.StatusHandlerConfig}\n */\nproto.mediapipe.StatusHandlerConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.StatusHandlerConfig;\n return proto.mediapipe.StatusHandlerConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.StatusHandlerConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.StatusHandlerConfig}\n */\nproto.mediapipe.StatusHandlerConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setStatusHandler(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputSidePacket(value);\n break;\n case 1002:\n var value = /** @type {string} */ (reader.readString());\n msg.addExternalInput(value);\n break;\n case 3:\n var value = new mediapipe_framework_mediapipe_options_pb.MediaPipeOptions;\n reader.readMessage(value,mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.StatusHandlerConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.StatusHandlerConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.StatusHandlerConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getInputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 2,\n f\n );\n }\n f = message.getExternalInputList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1002,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string status_handler = 1;\n * @return {string}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.getStatusHandler = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.setStatusHandler = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.clearStatusHandler = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.hasStatusHandler = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated string input_side_packet = 2;\n * @return {!Array<string>}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.getInputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.setInputSidePacketList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.addInputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.clearInputSidePacketList = function() {\n return this.setInputSidePacketList([]);\n};\n\n\n/**\n * repeated string external_input = 1002;\n * @return {!Array<string>}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.getExternalInputList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1002));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.setExternalInputList = function(value) {\n return jspb.Message.setField(this, 1002, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.addExternalInput = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1002, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.clearExternalInputList = function() {\n return this.setExternalInputList([]);\n};\n\n\n/**\n * optional MediaPipeOptions options = 3;\n * @return {?proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.MediaPipeOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_mediapipe_options_pb.MediaPipeOptions, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.MediaPipeOptions|undefined} value\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n*/\nproto.mediapipe.StatusHandlerConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.StatusHandlerConfig} returns this\n */\nproto.mediapipe.StatusHandlerConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.StatusHandlerConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/framework/stream_handler.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_mediapipe_options_pb = require('../../mediapipe/framework/mediapipe_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_mediapipe_options_pb);\ngoog.exportSymbol('proto.mediapipe.InputStreamHandlerConfig', null, global);\ngoog.exportSymbol('proto.mediapipe.OutputStreamHandlerConfig', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InputStreamHandlerConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InputStreamHandlerConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InputStreamHandlerConfig.displayName = 'proto.mediapipe.InputStreamHandlerConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.OutputStreamHandlerConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.OutputStreamHandlerConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.OutputStreamHandlerConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.OutputStreamHandlerConfig.displayName = 'proto.mediapipe.OutputStreamHandlerConfig';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InputStreamHandlerConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InputStreamHandlerConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputStreamHandlerConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n inputStreamHandler: jspb.Message.getFieldWithDefault(msg, 1, \"DefaultInputStreamHandler\"),\n options: (f = msg.getOptions()) && mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InputStreamHandlerConfig}\n */\nproto.mediapipe.InputStreamHandlerConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InputStreamHandlerConfig;\n return proto.mediapipe.InputStreamHandlerConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InputStreamHandlerConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InputStreamHandlerConfig}\n */\nproto.mediapipe.InputStreamHandlerConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setInputStreamHandler(value);\n break;\n case 3:\n var value = new mediapipe_framework_mediapipe_options_pb.MediaPipeOptions;\n reader.readMessage(value,mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InputStreamHandlerConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InputStreamHandlerConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputStreamHandlerConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string input_stream_handler = 1;\n * @return {string}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.getInputStreamHandler = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"DefaultInputStreamHandler\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InputStreamHandlerConfig} returns this\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.setInputStreamHandler = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InputStreamHandlerConfig} returns this\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.clearInputStreamHandler = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.hasInputStreamHandler = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional MediaPipeOptions options = 3;\n * @return {?proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.MediaPipeOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_mediapipe_options_pb.MediaPipeOptions, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.MediaPipeOptions|undefined} value\n * @return {!proto.mediapipe.InputStreamHandlerConfig} returns this\n*/\nproto.mediapipe.InputStreamHandlerConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InputStreamHandlerConfig} returns this\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InputStreamHandlerConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.OutputStreamHandlerConfig.repeatedFields_ = [2];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.OutputStreamHandlerConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.OutputStreamHandlerConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.OutputStreamHandlerConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n outputStreamHandler: jspb.Message.getFieldWithDefault(msg, 1, \"InOrderOutputStreamHandler\"),\n inputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n options: (f = msg.getOptions()) && mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.OutputStreamHandlerConfig}\n */\nproto.mediapipe.OutputStreamHandlerConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.OutputStreamHandlerConfig;\n return proto.mediapipe.OutputStreamHandlerConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.OutputStreamHandlerConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.OutputStreamHandlerConfig}\n */\nproto.mediapipe.OutputStreamHandlerConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setOutputStreamHandler(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputSidePacket(value);\n break;\n case 3:\n var value = new mediapipe_framework_mediapipe_options_pb.MediaPipeOptions;\n reader.readMessage(value,mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.OutputStreamHandlerConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.OutputStreamHandlerConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.OutputStreamHandlerConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getInputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 2,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string output_stream_handler = 1;\n * @return {string}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.getOutputStreamHandler = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"InOrderOutputStreamHandler\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.setOutputStreamHandler = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.clearOutputStreamHandler = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.hasOutputStreamHandler = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * repeated string input_side_packet = 2;\n * @return {!Array<string>}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.getInputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.setInputSidePacketList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.addInputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.clearInputSidePacketList = function() {\n return this.setInputSidePacketList([]);\n};\n\n\n/**\n * optional MediaPipeOptions options = 3;\n * @return {?proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.MediaPipeOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_mediapipe_options_pb.MediaPipeOptions, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.MediaPipeOptions|undefined} value\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n*/\nproto.mediapipe.OutputStreamHandlerConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.OutputStreamHandlerConfig} returns this\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.OutputStreamHandlerConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/framework/calculator.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_calculator_options_pb = require('../../mediapipe/framework/calculator_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_options_pb);\nvar google_protobuf_any_pb = require('google-protobuf/google/protobuf/any_pb.js');\ngoog.object.extend(proto, google_protobuf_any_pb);\nvar mediapipe_framework_mediapipe_options_pb = require('../../mediapipe/framework/mediapipe_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_mediapipe_options_pb);\nvar mediapipe_framework_packet_factory_pb = require('../../mediapipe/framework/packet_factory_pb.js');\ngoog.object.extend(proto, mediapipe_framework_packet_factory_pb);\nvar mediapipe_framework_packet_generator_pb = require('../../mediapipe/framework/packet_generator_pb.js');\ngoog.object.extend(proto, mediapipe_framework_packet_generator_pb);\nvar mediapipe_framework_status_handler_pb = require('../../mediapipe/framework/status_handler_pb.js');\ngoog.object.extend(proto, mediapipe_framework_status_handler_pb);\nvar mediapipe_framework_stream_handler_pb = require('../../mediapipe/framework/stream_handler_pb.js');\ngoog.object.extend(proto, mediapipe_framework_stream_handler_pb);\ngoog.exportSymbol('proto.mediapipe.CalculatorGraphConfig', null, global);\ngoog.exportSymbol('proto.mediapipe.CalculatorGraphConfig.Node', null, global);\ngoog.exportSymbol('proto.mediapipe.ExecutorConfig', null, global);\ngoog.exportSymbol('proto.mediapipe.InputCollection', null, global);\ngoog.exportSymbol('proto.mediapipe.InputCollection.InputType', null, global);\ngoog.exportSymbol('proto.mediapipe.InputCollectionSet', null, global);\ngoog.exportSymbol('proto.mediapipe.InputStreamInfo', null, global);\ngoog.exportSymbol('proto.mediapipe.ProfilerConfig', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.ExecutorConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.ExecutorConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.ExecutorConfig.displayName = 'proto.mediapipe.ExecutorConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InputCollection = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, proto.mediapipe.InputCollection.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.InputCollection, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InputCollection.displayName = 'proto.mediapipe.InputCollection';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InputCollectionSet = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.InputCollectionSet.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.InputCollectionSet, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InputCollectionSet.displayName = 'proto.mediapipe.InputCollectionSet';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InputStreamInfo = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InputStreamInfo, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InputStreamInfo.displayName = 'proto.mediapipe.InputStreamInfo';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.ProfilerConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.ProfilerConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.ProfilerConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.ProfilerConfig.displayName = 'proto.mediapipe.ProfilerConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.CalculatorGraphConfig = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, proto.mediapipe.CalculatorGraphConfig.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.CalculatorGraphConfig, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.CalculatorGraphConfig.displayName = 'proto.mediapipe.CalculatorGraphConfig';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.CalculatorGraphConfig.Node = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, 500, proto.mediapipe.CalculatorGraphConfig.Node.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.CalculatorGraphConfig.Node, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.CalculatorGraphConfig.Node.displayName = 'proto.mediapipe.CalculatorGraphConfig.Node';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.ExecutorConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.ExecutorConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.ExecutorConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ExecutorConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n type: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n options: (f = msg.getOptions()) && mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.ExecutorConfig}\n */\nproto.mediapipe.ExecutorConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.ExecutorConfig;\n return proto.mediapipe.ExecutorConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.ExecutorConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.ExecutorConfig}\n */\nproto.mediapipe.ExecutorConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n case 3:\n var value = new mediapipe_framework_mediapipe_options_pb.MediaPipeOptions;\n reader.readMessage(value,mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.ExecutorConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.ExecutorConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.ExecutorConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ExecutorConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.mediapipe.ExecutorConfig.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.ExecutorConfig} returns this\n */\nproto.mediapipe.ExecutorConfig.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string type = 2;\n * @return {string}\n */\nproto.mediapipe.ExecutorConfig.prototype.getType = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.ExecutorConfig} returns this\n */\nproto.mediapipe.ExecutorConfig.prototype.setType = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * optional MediaPipeOptions options = 3;\n * @return {?proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.ExecutorConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.MediaPipeOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_mediapipe_options_pb.MediaPipeOptions, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.MediaPipeOptions|undefined} value\n * @return {!proto.mediapipe.ExecutorConfig} returns this\n*/\nproto.mediapipe.ExecutorConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.ExecutorConfig} returns this\n */\nproto.mediapipe.ExecutorConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.ExecutorConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.InputCollection.repeatedFields_ = [2,1002];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InputCollection.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InputCollection.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InputCollection} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputCollection.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n sidePacketNameList: (f = jspb.Message.getRepeatedField(msg, 2)) == null ? undefined : f,\n externalInputNameList: (f = jspb.Message.getRepeatedField(msg, 1002)) == null ? undefined : f,\n inputType: jspb.Message.getFieldWithDefault(msg, 3, 0),\n fileName: jspb.Message.getFieldWithDefault(msg, 4, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InputCollection}\n */\nproto.mediapipe.InputCollection.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InputCollection;\n return proto.mediapipe.InputCollection.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InputCollection} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InputCollection}\n */\nproto.mediapipe.InputCollection.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.addSidePacketName(value);\n break;\n case 1002:\n var value = /** @type {string} */ (reader.readString());\n msg.addExternalInputName(value);\n break;\n case 3:\n var value = /** @type {!proto.mediapipe.InputCollection.InputType} */ (reader.readEnum());\n msg.setInputType(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setFileName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InputCollection.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InputCollection.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InputCollection} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputCollection.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getSidePacketNameList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 2,\n f\n );\n }\n f = message.getExternalInputNameList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1002,\n f\n );\n }\n f = message.getInputType();\n if (f !== 0.0) {\n writer.writeEnum(\n 3,\n f\n );\n }\n f = message.getFileName();\n if (f.length > 0) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.mediapipe.InputCollection.InputType = {\n UNKNOWN: 0,\n RECORDIO: 1,\n FOREIGN_RECORDIO: 2,\n FOREIGN_CSV_TEXT: 3,\n INVALID_UPPER_BOUND: 4\n};\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.mediapipe.InputCollection.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * repeated string side_packet_name = 2;\n * @return {!Array<string>}\n */\nproto.mediapipe.InputCollection.prototype.getSidePacketNameList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 2));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.setSidePacketNameList = function(value) {\n return jspb.Message.setField(this, 2, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.addSidePacketName = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 2, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.clearSidePacketNameList = function() {\n return this.setSidePacketNameList([]);\n};\n\n\n/**\n * repeated string external_input_name = 1002;\n * @return {!Array<string>}\n */\nproto.mediapipe.InputCollection.prototype.getExternalInputNameList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1002));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.setExternalInputNameList = function(value) {\n return jspb.Message.setField(this, 1002, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.addExternalInputName = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1002, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.clearExternalInputNameList = function() {\n return this.setExternalInputNameList([]);\n};\n\n\n/**\n * optional InputType input_type = 3;\n * @return {!proto.mediapipe.InputCollection.InputType}\n */\nproto.mediapipe.InputCollection.prototype.getInputType = function() {\n return /** @type {!proto.mediapipe.InputCollection.InputType} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {!proto.mediapipe.InputCollection.InputType} value\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.setInputType = function(value) {\n return jspb.Message.setProto3EnumField(this, 3, value);\n};\n\n\n/**\n * optional string file_name = 4;\n * @return {string}\n */\nproto.mediapipe.InputCollection.prototype.getFileName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InputCollection} returns this\n */\nproto.mediapipe.InputCollection.prototype.setFileName = function(value) {\n return jspb.Message.setProto3StringField(this, 4, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.InputCollectionSet.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InputCollectionSet.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InputCollectionSet.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InputCollectionSet} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputCollectionSet.toObject = function(includeInstance, msg) {\n var f, obj = {\n inputCollectionList: jspb.Message.toObjectList(msg.getInputCollectionList(),\n proto.mediapipe.InputCollection.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InputCollectionSet}\n */\nproto.mediapipe.InputCollectionSet.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InputCollectionSet;\n return proto.mediapipe.InputCollectionSet.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InputCollectionSet} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InputCollectionSet}\n */\nproto.mediapipe.InputCollectionSet.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.InputCollection;\n reader.readMessage(value,proto.mediapipe.InputCollection.deserializeBinaryFromReader);\n msg.addInputCollection(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InputCollectionSet.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InputCollectionSet.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InputCollectionSet} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputCollectionSet.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getInputCollectionList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.InputCollection.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated InputCollection input_collection = 1;\n * @return {!Array<!proto.mediapipe.InputCollection>}\n */\nproto.mediapipe.InputCollectionSet.prototype.getInputCollectionList = function() {\n return /** @type{!Array<!proto.mediapipe.InputCollection>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.InputCollection, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.InputCollection>} value\n * @return {!proto.mediapipe.InputCollectionSet} returns this\n*/\nproto.mediapipe.InputCollectionSet.prototype.setInputCollectionList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.InputCollection=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.InputCollection}\n */\nproto.mediapipe.InputCollectionSet.prototype.addInputCollection = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.InputCollection, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.InputCollectionSet} returns this\n */\nproto.mediapipe.InputCollectionSet.prototype.clearInputCollectionList = function() {\n return this.setInputCollectionList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InputStreamInfo.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InputStreamInfo.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InputStreamInfo} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputStreamInfo.toObject = function(includeInstance, msg) {\n var f, obj = {\n tagIndex: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n backEdge: jspb.Message.getBooleanFieldWithDefault(msg, 2, false)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InputStreamInfo}\n */\nproto.mediapipe.InputStreamInfo.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InputStreamInfo;\n return proto.mediapipe.InputStreamInfo.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InputStreamInfo} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InputStreamInfo}\n */\nproto.mediapipe.InputStreamInfo.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setTagIndex(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setBackEdge(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InputStreamInfo.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InputStreamInfo.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InputStreamInfo} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InputStreamInfo.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTagIndex();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getBackEdge();\n if (f) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional string tag_index = 1;\n * @return {string}\n */\nproto.mediapipe.InputStreamInfo.prototype.getTagIndex = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InputStreamInfo} returns this\n */\nproto.mediapipe.InputStreamInfo.prototype.setTagIndex = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional bool back_edge = 2;\n * @return {boolean}\n */\nproto.mediapipe.InputStreamInfo.prototype.getBackEdge = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.InputStreamInfo} returns this\n */\nproto.mediapipe.InputStreamInfo.prototype.setBackEdge = function(value) {\n return jspb.Message.setProto3BooleanField(this, 2, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.ProfilerConfig.repeatedFields_ = [8];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.ProfilerConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.ProfilerConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.ProfilerConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ProfilerConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n histogramIntervalSizeUsec: jspb.Message.getFieldWithDefault(msg, 1, 0),\n numHistogramIntervals: jspb.Message.getFieldWithDefault(msg, 2, 0),\n enableInputOutputLatency: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n enableProfiler: jspb.Message.getBooleanFieldWithDefault(msg, 4, false),\n enableStreamLatency: jspb.Message.getBooleanFieldWithDefault(msg, 5, false),\n usePacketTimestampForAddedPacket: jspb.Message.getBooleanFieldWithDefault(msg, 6, false),\n traceLogCapacity: jspb.Message.getFieldWithDefault(msg, 7, 0),\n traceEventTypesDisabledList: (f = jspb.Message.getRepeatedField(msg, 8)) == null ? undefined : f,\n traceLogPath: jspb.Message.getFieldWithDefault(msg, 9, \"\"),\n traceLogCount: jspb.Message.getFieldWithDefault(msg, 10, 0),\n traceLogIntervalUsec: jspb.Message.getFieldWithDefault(msg, 11, 0),\n traceLogMarginUsec: jspb.Message.getFieldWithDefault(msg, 12, 0),\n traceLogDurationEvents: jspb.Message.getBooleanFieldWithDefault(msg, 13, false),\n traceLogIntervalCount: jspb.Message.getFieldWithDefault(msg, 14, 0),\n traceLogDisabled: jspb.Message.getBooleanFieldWithDefault(msg, 15, false),\n traceEnabled: jspb.Message.getBooleanFieldWithDefault(msg, 16, false),\n traceLogInstantEvents: jspb.Message.getBooleanFieldWithDefault(msg, 17, false),\n calculatorFilter: jspb.Message.getFieldWithDefault(msg, 18, \"\")\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.ProfilerConfig}\n */\nproto.mediapipe.ProfilerConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.ProfilerConfig;\n return proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.ProfilerConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.ProfilerConfig}\n */\nproto.mediapipe.ProfilerConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setHistogramIntervalSizeUsec(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setNumHistogramIntervals(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setEnableInputOutputLatency(value);\n break;\n case 4:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setEnableProfiler(value);\n break;\n case 5:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setEnableStreamLatency(value);\n break;\n case 6:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setUsePacketTimestampForAddedPacket(value);\n break;\n case 7:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTraceLogCapacity(value);\n break;\n case 8:\n var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedInt32() : [reader.readInt32()]);\n for (var i = 0; i < values.length; i++) {\n msg.addTraceEventTypesDisabled(values[i]);\n }\n break;\n case 9:\n var value = /** @type {string} */ (reader.readString());\n msg.setTraceLogPath(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setTraceLogCount(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTraceLogIntervalUsec(value);\n break;\n case 12:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTraceLogMarginUsec(value);\n break;\n case 13:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setTraceLogDurationEvents(value);\n break;\n case 14:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setTraceLogIntervalCount(value);\n break;\n case 15:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setTraceLogDisabled(value);\n break;\n case 16:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setTraceEnabled(value);\n break;\n case 17:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setTraceLogInstantEvents(value);\n break;\n case 18:\n var value = /** @type {string} */ (reader.readString());\n msg.setCalculatorFilter(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.ProfilerConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.ProfilerConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.ProfilerConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ProfilerConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getHistogramIntervalSizeUsec();\n if (f !== 0) {\n writer.writeInt64(\n 1,\n f\n );\n }\n f = message.getNumHistogramIntervals();\n if (f !== 0) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = message.getEnableInputOutputLatency();\n if (f) {\n writer.writeBool(\n 3,\n f\n );\n }\n f = message.getEnableProfiler();\n if (f) {\n writer.writeBool(\n 4,\n f\n );\n }\n f = message.getEnableStreamLatency();\n if (f) {\n writer.writeBool(\n 5,\n f\n );\n }\n f = message.getUsePacketTimestampForAddedPacket();\n if (f) {\n writer.writeBool(\n 6,\n f\n );\n }\n f = message.getTraceLogCapacity();\n if (f !== 0) {\n writer.writeInt64(\n 7,\n f\n );\n }\n f = message.getTraceEventTypesDisabledList();\n if (f.length > 0) {\n writer.writePackedInt32(\n 8,\n f\n );\n }\n f = message.getTraceLogPath();\n if (f.length > 0) {\n writer.writeString(\n 9,\n f\n );\n }\n f = message.getTraceLogCount();\n if (f !== 0) {\n writer.writeInt32(\n 10,\n f\n );\n }\n f = message.getTraceLogIntervalUsec();\n if (f !== 0) {\n writer.writeInt64(\n 11,\n f\n );\n }\n f = message.getTraceLogMarginUsec();\n if (f !== 0) {\n writer.writeInt64(\n 12,\n f\n );\n }\n f = message.getTraceLogDurationEvents();\n if (f) {\n writer.writeBool(\n 13,\n f\n );\n }\n f = message.getTraceLogIntervalCount();\n if (f !== 0) {\n writer.writeInt32(\n 14,\n f\n );\n }\n f = message.getTraceLogDisabled();\n if (f) {\n writer.writeBool(\n 15,\n f\n );\n }\n f = message.getTraceEnabled();\n if (f) {\n writer.writeBool(\n 16,\n f\n );\n }\n f = message.getTraceLogInstantEvents();\n if (f) {\n writer.writeBool(\n 17,\n f\n );\n }\n f = message.getCalculatorFilter();\n if (f.length > 0) {\n writer.writeString(\n 18,\n f\n );\n }\n};\n\n\n/**\n * optional int64 histogram_interval_size_usec = 1;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getHistogramIntervalSizeUsec = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setHistogramIntervalSizeUsec = function(value) {\n return jspb.Message.setProto3IntField(this, 1, value);\n};\n\n\n/**\n * optional int64 num_histogram_intervals = 2;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getNumHistogramIntervals = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setNumHistogramIntervals = function(value) {\n return jspb.Message.setProto3IntField(this, 2, value);\n};\n\n\n/**\n * optional bool enable_input_output_latency = 3;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getEnableInputOutputLatency = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setEnableInputOutputLatency = function(value) {\n return jspb.Message.setProto3BooleanField(this, 3, value);\n};\n\n\n/**\n * optional bool enable_profiler = 4;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getEnableProfiler = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 4, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setEnableProfiler = function(value) {\n return jspb.Message.setProto3BooleanField(this, 4, value);\n};\n\n\n/**\n * optional bool enable_stream_latency = 5;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getEnableStreamLatency = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 5, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setEnableStreamLatency = function(value) {\n return jspb.Message.setProto3BooleanField(this, 5, value);\n};\n\n\n/**\n * optional bool use_packet_timestamp_for_added_packet = 6;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getUsePacketTimestampForAddedPacket = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 6, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setUsePacketTimestampForAddedPacket = function(value) {\n return jspb.Message.setProto3BooleanField(this, 6, value);\n};\n\n\n/**\n * optional int64 trace_log_capacity = 7;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogCapacity = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 7, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogCapacity = function(value) {\n return jspb.Message.setProto3IntField(this, 7, value);\n};\n\n\n/**\n * repeated int32 trace_event_types_disabled = 8;\n * @return {!Array<number>}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceEventTypesDisabledList = function() {\n return /** @type {!Array<number>} */ (jspb.Message.getRepeatedField(this, 8));\n};\n\n\n/**\n * @param {!Array<number>} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceEventTypesDisabledList = function(value) {\n return jspb.Message.setField(this, 8, value || []);\n};\n\n\n/**\n * @param {number} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.addTraceEventTypesDisabled = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 8, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.clearTraceEventTypesDisabledList = function() {\n return this.setTraceEventTypesDisabledList([]);\n};\n\n\n/**\n * optional string trace_log_path = 9;\n * @return {string}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogPath = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 9, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogPath = function(value) {\n return jspb.Message.setProto3StringField(this, 9, value);\n};\n\n\n/**\n * optional int32 trace_log_count = 10;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogCount = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional int64 trace_log_interval_usec = 11;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogIntervalUsec = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogIntervalUsec = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional int64 trace_log_margin_usec = 12;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogMarginUsec = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 12, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogMarginUsec = function(value) {\n return jspb.Message.setProto3IntField(this, 12, value);\n};\n\n\n/**\n * optional bool trace_log_duration_events = 13;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogDurationEvents = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 13, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogDurationEvents = function(value) {\n return jspb.Message.setProto3BooleanField(this, 13, value);\n};\n\n\n/**\n * optional int32 trace_log_interval_count = 14;\n * @return {number}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogIntervalCount = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 14, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogIntervalCount = function(value) {\n return jspb.Message.setProto3IntField(this, 14, value);\n};\n\n\n/**\n * optional bool trace_log_disabled = 15;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogDisabled = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 15, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogDisabled = function(value) {\n return jspb.Message.setProto3BooleanField(this, 15, value);\n};\n\n\n/**\n * optional bool trace_enabled = 16;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceEnabled = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 16, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceEnabled = function(value) {\n return jspb.Message.setProto3BooleanField(this, 16, value);\n};\n\n\n/**\n * optional bool trace_log_instant_events = 17;\n * @return {boolean}\n */\nproto.mediapipe.ProfilerConfig.prototype.getTraceLogInstantEvents = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 17, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setTraceLogInstantEvents = function(value) {\n return jspb.Message.setProto3BooleanField(this, 17, value);\n};\n\n\n/**\n * optional string calculator_filter = 18;\n * @return {string}\n */\nproto.mediapipe.ProfilerConfig.prototype.getCalculatorFilter = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 18, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.ProfilerConfig} returns this\n */\nproto.mediapipe.ProfilerConfig.prototype.setCalculatorFilter = function(value) {\n return jspb.Message.setProto3StringField(this, 18, value);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.CalculatorGraphConfig.repeatedFields_ = [1,6,7,9,10,15,16,17,14,1002];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.CalculatorGraphConfig.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.CalculatorGraphConfig} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorGraphConfig.toObject = function(includeInstance, msg) {\n var f, obj = {\n nodeList: jspb.Message.toObjectList(msg.getNodeList(),\n proto.mediapipe.CalculatorGraphConfig.Node.toObject, includeInstance),\n packetFactoryList: jspb.Message.toObjectList(msg.getPacketFactoryList(),\n mediapipe_framework_packet_factory_pb.PacketFactoryConfig.toObject, includeInstance),\n packetGeneratorList: jspb.Message.toObjectList(msg.getPacketGeneratorList(),\n mediapipe_framework_packet_generator_pb.PacketGeneratorConfig.toObject, includeInstance),\n numThreads: jspb.Message.getFieldWithDefault(msg, 8, 0),\n statusHandlerList: jspb.Message.toObjectList(msg.getStatusHandlerList(),\n mediapipe_framework_status_handler_pb.StatusHandlerConfig.toObject, includeInstance),\n inputStreamList: (f = jspb.Message.getRepeatedField(msg, 10)) == null ? undefined : f,\n outputStreamList: (f = jspb.Message.getRepeatedField(msg, 15)) == null ? undefined : f,\n inputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 16)) == null ? undefined : f,\n outputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 17)) == null ? undefined : f,\n maxQueueSize: jspb.Message.getFieldWithDefault(msg, 11, 0),\n reportDeadlock: jspb.Message.getBooleanFieldWithDefault(msg, 21, false),\n inputStreamHandler: (f = msg.getInputStreamHandler()) && mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.toObject(includeInstance, f),\n outputStreamHandler: (f = msg.getOutputStreamHandler()) && mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.toObject(includeInstance, f),\n executorList: jspb.Message.toObjectList(msg.getExecutorList(),\n proto.mediapipe.ExecutorConfig.toObject, includeInstance),\n profilerConfig: (f = msg.getProfilerConfig()) && proto.mediapipe.ProfilerConfig.toObject(includeInstance, f),\n pb_package: jspb.Message.getFieldWithDefault(msg, 19, \"\"),\n type: jspb.Message.getFieldWithDefault(msg, 20, \"\"),\n options: (f = msg.getOptions()) && mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.toObject(includeInstance, f),\n graphOptionsList: jspb.Message.toObjectList(msg.getGraphOptionsList(),\n google_protobuf_any_pb.Any.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.CalculatorGraphConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.CalculatorGraphConfig;\n return proto.mediapipe.CalculatorGraphConfig.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.CalculatorGraphConfig} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.CalculatorGraphConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.CalculatorGraphConfig.Node;\n reader.readMessage(value,proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader);\n msg.addNode(value);\n break;\n case 6:\n var value = new mediapipe_framework_packet_factory_pb.PacketFactoryConfig;\n reader.readMessage(value,mediapipe_framework_packet_factory_pb.PacketFactoryConfig.deserializeBinaryFromReader);\n msg.addPacketFactory(value);\n break;\n case 7:\n var value = new mediapipe_framework_packet_generator_pb.PacketGeneratorConfig;\n reader.readMessage(value,mediapipe_framework_packet_generator_pb.PacketGeneratorConfig.deserializeBinaryFromReader);\n msg.addPacketGenerator(value);\n break;\n case 8:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setNumThreads(value);\n break;\n case 9:\n var value = new mediapipe_framework_status_handler_pb.StatusHandlerConfig;\n reader.readMessage(value,mediapipe_framework_status_handler_pb.StatusHandlerConfig.deserializeBinaryFromReader);\n msg.addStatusHandler(value);\n break;\n case 10:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputStream(value);\n break;\n case 15:\n var value = /** @type {string} */ (reader.readString());\n msg.addOutputStream(value);\n break;\n case 16:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputSidePacket(value);\n break;\n case 17:\n var value = /** @type {string} */ (reader.readString());\n msg.addOutputSidePacket(value);\n break;\n case 11:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setMaxQueueSize(value);\n break;\n case 21:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setReportDeadlock(value);\n break;\n case 12:\n var value = new mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig;\n reader.readMessage(value,mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.deserializeBinaryFromReader);\n msg.setInputStreamHandler(value);\n break;\n case 13:\n var value = new mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig;\n reader.readMessage(value,mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.deserializeBinaryFromReader);\n msg.setOutputStreamHandler(value);\n break;\n case 14:\n var value = new proto.mediapipe.ExecutorConfig;\n reader.readMessage(value,proto.mediapipe.ExecutorConfig.deserializeBinaryFromReader);\n msg.addExecutor(value);\n break;\n case 18:\n var value = new proto.mediapipe.ProfilerConfig;\n reader.readMessage(value,proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader);\n msg.setProfilerConfig(value);\n break;\n case 19:\n var value = /** @type {string} */ (reader.readString());\n msg.setPackage(value);\n break;\n case 20:\n var value = /** @type {string} */ (reader.readString());\n msg.setType(value);\n break;\n case 1001:\n var value = new mediapipe_framework_mediapipe_options_pb.MediaPipeOptions;\n reader.readMessage(value,mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n case 1002:\n var value = new google_protobuf_any_pb.Any;\n reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);\n msg.addGraphOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.CalculatorGraphConfig.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.CalculatorGraphConfig} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorGraphConfig.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getNodeList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter\n );\n }\n f = message.getPacketFactoryList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 6,\n f,\n mediapipe_framework_packet_factory_pb.PacketFactoryConfig.serializeBinaryToWriter\n );\n }\n f = message.getPacketGeneratorList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 7,\n f,\n mediapipe_framework_packet_generator_pb.PacketGeneratorConfig.serializeBinaryToWriter\n );\n }\n f = message.getNumThreads();\n if (f !== 0) {\n writer.writeInt32(\n 8,\n f\n );\n }\n f = message.getStatusHandlerList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 9,\n f,\n mediapipe_framework_status_handler_pb.StatusHandlerConfig.serializeBinaryToWriter\n );\n }\n f = message.getInputStreamList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 10,\n f\n );\n }\n f = message.getOutputStreamList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 15,\n f\n );\n }\n f = message.getInputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 16,\n f\n );\n }\n f = message.getOutputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 17,\n f\n );\n }\n f = message.getMaxQueueSize();\n if (f !== 0) {\n writer.writeInt32(\n 11,\n f\n );\n }\n f = message.getReportDeadlock();\n if (f) {\n writer.writeBool(\n 21,\n f\n );\n }\n f = message.getInputStreamHandler();\n if (f != null) {\n writer.writeMessage(\n 12,\n f,\n mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.serializeBinaryToWriter\n );\n }\n f = message.getOutputStreamHandler();\n if (f != null) {\n writer.writeMessage(\n 13,\n f,\n mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.serializeBinaryToWriter\n );\n }\n f = message.getExecutorList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 14,\n f,\n proto.mediapipe.ExecutorConfig.serializeBinaryToWriter\n );\n }\n f = message.getProfilerConfig();\n if (f != null) {\n writer.writeMessage(\n 18,\n f,\n proto.mediapipe.ProfilerConfig.serializeBinaryToWriter\n );\n }\n f = message.getPackage();\n if (f.length > 0) {\n writer.writeString(\n 19,\n f\n );\n }\n f = message.getType();\n if (f.length > 0) {\n writer.writeString(\n 20,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 1001,\n f,\n mediapipe_framework_mediapipe_options_pb.MediaPipeOptions.serializeBinaryToWriter\n );\n }\n f = message.getGraphOptionsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1002,\n f,\n google_protobuf_any_pb.Any.serializeBinaryToWriter\n );\n }\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.CalculatorGraphConfig.Node.repeatedFields_ = [3,4,5,6,8,13,17,1005];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.CalculatorGraphConfig.Node.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.CalculatorGraphConfig.Node} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorGraphConfig.Node.toObject = function(includeInstance, msg) {\n var f, obj = {\n name: jspb.Message.getFieldWithDefault(msg, 1, \"\"),\n calculator: jspb.Message.getFieldWithDefault(msg, 2, \"\"),\n inputStreamList: (f = jspb.Message.getRepeatedField(msg, 3)) == null ? undefined : f,\n outputStreamList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,\n inputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f,\n outputSidePacketList: (f = jspb.Message.getRepeatedField(msg, 6)) == null ? undefined : f,\n options: (f = msg.getOptions()) && mediapipe_framework_calculator_options_pb.CalculatorOptions.toObject(includeInstance, f),\n nodeOptionsList: jspb.Message.toObjectList(msg.getNodeOptionsList(),\n google_protobuf_any_pb.Any.toObject, includeInstance),\n sourceLayer: jspb.Message.getFieldWithDefault(msg, 9, 0),\n bufferSizeHint: jspb.Message.getFieldWithDefault(msg, 10, 0),\n inputStreamHandler: (f = msg.getInputStreamHandler()) && mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.toObject(includeInstance, f),\n outputStreamHandler: (f = msg.getOutputStreamHandler()) && mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.toObject(includeInstance, f),\n inputStreamInfoList: jspb.Message.toObjectList(msg.getInputStreamInfoList(),\n proto.mediapipe.InputStreamInfo.toObject, includeInstance),\n executor: jspb.Message.getFieldWithDefault(msg, 14, \"\"),\n profilerConfig: (f = msg.getProfilerConfig()) && proto.mediapipe.ProfilerConfig.toObject(includeInstance, f),\n maxInFlight: jspb.Message.getFieldWithDefault(msg, 16, 0),\n optionValueList: (f = jspb.Message.getRepeatedField(msg, 17)) == null ? undefined : f,\n externalInputList: (f = jspb.Message.getRepeatedField(msg, 1005)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.CalculatorGraphConfig.Node;\n return proto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.CalculatorGraphConfig.Node} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setName(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCalculator(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputStream(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.addOutputStream(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.addInputSidePacket(value);\n break;\n case 6:\n var value = /** @type {string} */ (reader.readString());\n msg.addOutputSidePacket(value);\n break;\n case 7:\n var value = new mediapipe_framework_calculator_options_pb.CalculatorOptions;\n reader.readMessage(value,mediapipe_framework_calculator_options_pb.CalculatorOptions.deserializeBinaryFromReader);\n msg.setOptions(value);\n break;\n case 8:\n var value = new google_protobuf_any_pb.Any;\n reader.readMessage(value,google_protobuf_any_pb.Any.deserializeBinaryFromReader);\n msg.addNodeOptions(value);\n break;\n case 9:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setSourceLayer(value);\n break;\n case 10:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setBufferSizeHint(value);\n break;\n case 11:\n var value = new mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig;\n reader.readMessage(value,mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.deserializeBinaryFromReader);\n msg.setInputStreamHandler(value);\n break;\n case 12:\n var value = new mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig;\n reader.readMessage(value,mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.deserializeBinaryFromReader);\n msg.setOutputStreamHandler(value);\n break;\n case 13:\n var value = new proto.mediapipe.InputStreamInfo;\n reader.readMessage(value,proto.mediapipe.InputStreamInfo.deserializeBinaryFromReader);\n msg.addInputStreamInfo(value);\n break;\n case 14:\n var value = /** @type {string} */ (reader.readString());\n msg.setExecutor(value);\n break;\n case 15:\n var value = new proto.mediapipe.ProfilerConfig;\n reader.readMessage(value,proto.mediapipe.ProfilerConfig.deserializeBinaryFromReader);\n msg.setProfilerConfig(value);\n break;\n case 16:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setMaxInFlight(value);\n break;\n case 17:\n var value = /** @type {string} */ (reader.readString());\n msg.addOptionValue(value);\n break;\n case 1005:\n var value = /** @type {string} */ (reader.readString());\n msg.addExternalInput(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.CalculatorGraphConfig.Node} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.CalculatorGraphConfig.Node.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getName();\n if (f.length > 0) {\n writer.writeString(\n 1,\n f\n );\n }\n f = message.getCalculator();\n if (f.length > 0) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getInputStreamList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 3,\n f\n );\n }\n f = message.getOutputStreamList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 4,\n f\n );\n }\n f = message.getInputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 5,\n f\n );\n }\n f = message.getOutputSidePacketList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 6,\n f\n );\n }\n f = message.getOptions();\n if (f != null) {\n writer.writeMessage(\n 7,\n f,\n mediapipe_framework_calculator_options_pb.CalculatorOptions.serializeBinaryToWriter\n );\n }\n f = message.getNodeOptionsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 8,\n f,\n google_protobuf_any_pb.Any.serializeBinaryToWriter\n );\n }\n f = message.getSourceLayer();\n if (f !== 0) {\n writer.writeInt32(\n 9,\n f\n );\n }\n f = message.getBufferSizeHint();\n if (f !== 0) {\n writer.writeInt32(\n 10,\n f\n );\n }\n f = message.getInputStreamHandler();\n if (f != null) {\n writer.writeMessage(\n 11,\n f,\n mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig.serializeBinaryToWriter\n );\n }\n f = message.getOutputStreamHandler();\n if (f != null) {\n writer.writeMessage(\n 12,\n f,\n mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig.serializeBinaryToWriter\n );\n }\n f = message.getInputStreamInfoList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 13,\n f,\n proto.mediapipe.InputStreamInfo.serializeBinaryToWriter\n );\n }\n f = message.getExecutor();\n if (f.length > 0) {\n writer.writeString(\n 14,\n f\n );\n }\n f = message.getProfilerConfig();\n if (f != null) {\n writer.writeMessage(\n 15,\n f,\n proto.mediapipe.ProfilerConfig.serializeBinaryToWriter\n );\n }\n f = message.getMaxInFlight();\n if (f !== 0) {\n writer.writeInt32(\n 16,\n f\n );\n }\n f = message.getOptionValueList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 17,\n f\n );\n }\n f = message.getExternalInputList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 1005,\n f\n );\n }\n};\n\n\n/**\n * optional string name = 1;\n * @return {string}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setName = function(value) {\n return jspb.Message.setProto3StringField(this, 1, value);\n};\n\n\n/**\n * optional string calculator = 2;\n * @return {string}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getCalculator = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setCalculator = function(value) {\n return jspb.Message.setProto3StringField(this, 2, value);\n};\n\n\n/**\n * repeated string input_stream = 3;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 3));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamList = function(value) {\n return jspb.Message.setField(this, 3, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputStream = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 3, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamList = function() {\n return this.setInputStreamList([]);\n};\n\n\n/**\n * repeated string output_stream = 4;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputStreamList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputStreamList = function(value) {\n return jspb.Message.setField(this, 4, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addOutputStream = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 4, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputStreamList = function() {\n return this.setOutputStreamList([]);\n};\n\n\n/**\n * repeated string input_side_packet = 5;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 5));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputSidePacketList = function(value) {\n return jspb.Message.setField(this, 5, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 5, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputSidePacketList = function() {\n return this.setInputSidePacketList([]);\n};\n\n\n/**\n * repeated string output_side_packet = 6;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 6));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputSidePacketList = function(value) {\n return jspb.Message.setField(this, 6, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addOutputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 6, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputSidePacketList = function() {\n return this.setOutputSidePacketList([]);\n};\n\n\n/**\n * optional CalculatorOptions options = 7;\n * @return {?proto.mediapipe.CalculatorOptions}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.CalculatorOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_calculator_options_pb.CalculatorOptions, 7));\n};\n\n\n/**\n * @param {?proto.mediapipe.CalculatorOptions|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 7, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * repeated google.protobuf.Any node_options = 8;\n * @return {!Array<!proto.google.protobuf.Any>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getNodeOptionsList = function() {\n return /** @type{!Array<!proto.google.protobuf.Any>} */ (\n jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 8));\n};\n\n\n/**\n * @param {!Array<!proto.google.protobuf.Any>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setNodeOptionsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 8, value);\n};\n\n\n/**\n * @param {!proto.google.protobuf.Any=} opt_value\n * @param {number=} opt_index\n * @return {!proto.google.protobuf.Any}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addNodeOptions = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 8, opt_value, proto.google.protobuf.Any, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearNodeOptionsList = function() {\n return this.setNodeOptionsList([]);\n};\n\n\n/**\n * optional int32 source_layer = 9;\n * @return {number}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getSourceLayer = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 9, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setSourceLayer = function(value) {\n return jspb.Message.setProto3IntField(this, 9, value);\n};\n\n\n/**\n * optional int32 buffer_size_hint = 10;\n * @return {number}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getBufferSizeHint = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 10, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setBufferSizeHint = function(value) {\n return jspb.Message.setProto3IntField(this, 10, value);\n};\n\n\n/**\n * optional InputStreamHandlerConfig input_stream_handler = 11;\n * @return {?proto.mediapipe.InputStreamHandlerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamHandler = function() {\n return /** @type{?proto.mediapipe.InputStreamHandlerConfig} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig, 11));\n};\n\n\n/**\n * @param {?proto.mediapipe.InputStreamHandlerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamHandler = function(value) {\n return jspb.Message.setWrapperField(this, 11, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamHandler = function() {\n return this.setInputStreamHandler(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.hasInputStreamHandler = function() {\n return jspb.Message.getField(this, 11) != null;\n};\n\n\n/**\n * optional OutputStreamHandlerConfig output_stream_handler = 12;\n * @return {?proto.mediapipe.OutputStreamHandlerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getOutputStreamHandler = function() {\n return /** @type{?proto.mediapipe.OutputStreamHandlerConfig} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig, 12));\n};\n\n\n/**\n * @param {?proto.mediapipe.OutputStreamHandlerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setOutputStreamHandler = function(value) {\n return jspb.Message.setWrapperField(this, 12, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOutputStreamHandler = function() {\n return this.setOutputStreamHandler(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.hasOutputStreamHandler = function() {\n return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * repeated InputStreamInfo input_stream_info = 13;\n * @return {!Array<!proto.mediapipe.InputStreamInfo>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getInputStreamInfoList = function() {\n return /** @type{!Array<!proto.mediapipe.InputStreamInfo>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.InputStreamInfo, 13));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.InputStreamInfo>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setInputStreamInfoList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 13, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.InputStreamInfo=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.InputStreamInfo}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addInputStreamInfo = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 13, opt_value, proto.mediapipe.InputStreamInfo, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearInputStreamInfoList = function() {\n return this.setInputStreamInfoList([]);\n};\n\n\n/**\n * optional string executor = 14;\n * @return {string}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getExecutor = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 14, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setExecutor = function(value) {\n return jspb.Message.setProto3StringField(this, 14, value);\n};\n\n\n/**\n * optional ProfilerConfig profiler_config = 15;\n * @return {?proto.mediapipe.ProfilerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getProfilerConfig = function() {\n return /** @type{?proto.mediapipe.ProfilerConfig} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.ProfilerConfig, 15));\n};\n\n\n/**\n * @param {?proto.mediapipe.ProfilerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setProfilerConfig = function(value) {\n return jspb.Message.setWrapperField(this, 15, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearProfilerConfig = function() {\n return this.setProfilerConfig(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.hasProfilerConfig = function() {\n return jspb.Message.getField(this, 15) != null;\n};\n\n\n/**\n * optional int32 max_in_flight = 16;\n * @return {number}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getMaxInFlight = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 16, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setMaxInFlight = function(value) {\n return jspb.Message.setProto3IntField(this, 16, value);\n};\n\n\n/**\n * repeated string option_value = 17;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getOptionValueList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 17));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setOptionValueList = function(value) {\n return jspb.Message.setField(this, 17, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addOptionValue = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 17, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearOptionValueList = function() {\n return this.setOptionValueList([]);\n};\n\n\n/**\n * repeated string external_input = 1005;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.getExternalInputList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 1005));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.setExternalInputList = function(value) {\n return jspb.Message.setField(this, 1005, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.addExternalInput = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1005, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.Node.prototype.clearExternalInputList = function() {\n return this.setExternalInputList([]);\n};\n\n\n/**\n * repeated Node node = 1;\n * @return {!Array<!proto.mediapipe.CalculatorGraphConfig.Node>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getNodeList = function() {\n return /** @type{!Array<!proto.mediapipe.CalculatorGraphConfig.Node>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.CalculatorGraphConfig.Node, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.CalculatorGraphConfig.Node>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setNodeList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.CalculatorGraphConfig.Node=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig.Node}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addNode = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.CalculatorGraphConfig.Node, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearNodeList = function() {\n return this.setNodeList([]);\n};\n\n\n/**\n * repeated PacketFactoryConfig packet_factory = 6;\n * @return {!Array<!proto.mediapipe.PacketFactoryConfig>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getPacketFactoryList = function() {\n return /** @type{!Array<!proto.mediapipe.PacketFactoryConfig>} */ (\n jspb.Message.getRepeatedWrapperField(this, mediapipe_framework_packet_factory_pb.PacketFactoryConfig, 6));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.PacketFactoryConfig>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setPacketFactoryList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 6, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.PacketFactoryConfig=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketFactoryConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addPacketFactory = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 6, opt_value, proto.mediapipe.PacketFactoryConfig, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearPacketFactoryList = function() {\n return this.setPacketFactoryList([]);\n};\n\n\n/**\n * repeated PacketGeneratorConfig packet_generator = 7;\n * @return {!Array<!proto.mediapipe.PacketGeneratorConfig>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getPacketGeneratorList = function() {\n return /** @type{!Array<!proto.mediapipe.PacketGeneratorConfig>} */ (\n jspb.Message.getRepeatedWrapperField(this, mediapipe_framework_packet_generator_pb.PacketGeneratorConfig, 7));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.PacketGeneratorConfig>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setPacketGeneratorList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 7, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.PacketGeneratorConfig=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.PacketGeneratorConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addPacketGenerator = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 7, opt_value, proto.mediapipe.PacketGeneratorConfig, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearPacketGeneratorList = function() {\n return this.setPacketGeneratorList([]);\n};\n\n\n/**\n * optional int32 num_threads = 8;\n * @return {number}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getNumThreads = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 8, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setNumThreads = function(value) {\n return jspb.Message.setProto3IntField(this, 8, value);\n};\n\n\n/**\n * repeated StatusHandlerConfig status_handler = 9;\n * @return {!Array<!proto.mediapipe.StatusHandlerConfig>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getStatusHandlerList = function() {\n return /** @type{!Array<!proto.mediapipe.StatusHandlerConfig>} */ (\n jspb.Message.getRepeatedWrapperField(this, mediapipe_framework_status_handler_pb.StatusHandlerConfig, 9));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.StatusHandlerConfig>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setStatusHandlerList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 9, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.StatusHandlerConfig=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.StatusHandlerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addStatusHandler = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 9, opt_value, proto.mediapipe.StatusHandlerConfig, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearStatusHandlerList = function() {\n return this.setStatusHandlerList([]);\n};\n\n\n/**\n * repeated string input_stream = 10;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getInputStreamList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 10));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setInputStreamList = function(value) {\n return jspb.Message.setField(this, 10, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addInputStream = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 10, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearInputStreamList = function() {\n return this.setInputStreamList([]);\n};\n\n\n/**\n * repeated string output_stream = 15;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getOutputStreamList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 15));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setOutputStreamList = function(value) {\n return jspb.Message.setField(this, 15, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addOutputStream = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 15, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearOutputStreamList = function() {\n return this.setOutputStreamList([]);\n};\n\n\n/**\n * repeated string input_side_packet = 16;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getInputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 16));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setInputSidePacketList = function(value) {\n return jspb.Message.setField(this, 16, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addInputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 16, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearInputSidePacketList = function() {\n return this.setInputSidePacketList([]);\n};\n\n\n/**\n * repeated string output_side_packet = 17;\n * @return {!Array<string>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getOutputSidePacketList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 17));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setOutputSidePacketList = function(value) {\n return jspb.Message.setField(this, 17, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addOutputSidePacket = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 17, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearOutputSidePacketList = function() {\n return this.setOutputSidePacketList([]);\n};\n\n\n/**\n * optional int32 max_queue_size = 11;\n * @return {number}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getMaxQueueSize = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 11, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setMaxQueueSize = function(value) {\n return jspb.Message.setProto3IntField(this, 11, value);\n};\n\n\n/**\n * optional bool report_deadlock = 21;\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getReportDeadlock = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 21, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setReportDeadlock = function(value) {\n return jspb.Message.setProto3BooleanField(this, 21, value);\n};\n\n\n/**\n * optional InputStreamHandlerConfig input_stream_handler = 12;\n * @return {?proto.mediapipe.InputStreamHandlerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getInputStreamHandler = function() {\n return /** @type{?proto.mediapipe.InputStreamHandlerConfig} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_stream_handler_pb.InputStreamHandlerConfig, 12));\n};\n\n\n/**\n * @param {?proto.mediapipe.InputStreamHandlerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setInputStreamHandler = function(value) {\n return jspb.Message.setWrapperField(this, 12, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearInputStreamHandler = function() {\n return this.setInputStreamHandler(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.hasInputStreamHandler = function() {\n return jspb.Message.getField(this, 12) != null;\n};\n\n\n/**\n * optional OutputStreamHandlerConfig output_stream_handler = 13;\n * @return {?proto.mediapipe.OutputStreamHandlerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getOutputStreamHandler = function() {\n return /** @type{?proto.mediapipe.OutputStreamHandlerConfig} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_stream_handler_pb.OutputStreamHandlerConfig, 13));\n};\n\n\n/**\n * @param {?proto.mediapipe.OutputStreamHandlerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setOutputStreamHandler = function(value) {\n return jspb.Message.setWrapperField(this, 13, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearOutputStreamHandler = function() {\n return this.setOutputStreamHandler(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.hasOutputStreamHandler = function() {\n return jspb.Message.getField(this, 13) != null;\n};\n\n\n/**\n * repeated ExecutorConfig executor = 14;\n * @return {!Array<!proto.mediapipe.ExecutorConfig>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getExecutorList = function() {\n return /** @type{!Array<!proto.mediapipe.ExecutorConfig>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.ExecutorConfig, 14));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.ExecutorConfig>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setExecutorList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 14, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.ExecutorConfig=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.ExecutorConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addExecutor = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 14, opt_value, proto.mediapipe.ExecutorConfig, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearExecutorList = function() {\n return this.setExecutorList([]);\n};\n\n\n/**\n * optional ProfilerConfig profiler_config = 18;\n * @return {?proto.mediapipe.ProfilerConfig}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getProfilerConfig = function() {\n return /** @type{?proto.mediapipe.ProfilerConfig} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.ProfilerConfig, 18));\n};\n\n\n/**\n * @param {?proto.mediapipe.ProfilerConfig|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setProfilerConfig = function(value) {\n return jspb.Message.setWrapperField(this, 18, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearProfilerConfig = function() {\n return this.setProfilerConfig(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.hasProfilerConfig = function() {\n return jspb.Message.getField(this, 18) != null;\n};\n\n\n/**\n * optional string package = 19;\n * @return {string}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getPackage = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 19, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setPackage = function(value) {\n return jspb.Message.setProto3StringField(this, 19, value);\n};\n\n\n/**\n * optional string type = 20;\n * @return {string}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getType = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 20, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.setType = function(value) {\n return jspb.Message.setProto3StringField(this, 20, value);\n};\n\n\n/**\n * optional MediaPipeOptions options = 1001;\n * @return {?proto.mediapipe.MediaPipeOptions}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getOptions = function() {\n return /** @type{?proto.mediapipe.MediaPipeOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_mediapipe_options_pb.MediaPipeOptions, 1001));\n};\n\n\n/**\n * @param {?proto.mediapipe.MediaPipeOptions|undefined} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1001, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearOptions = function() {\n return this.setOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.hasOptions = function() {\n return jspb.Message.getField(this, 1001) != null;\n};\n\n\n/**\n * repeated google.protobuf.Any graph_options = 1002;\n * @return {!Array<!proto.google.protobuf.Any>}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.getGraphOptionsList = function() {\n return /** @type{!Array<!proto.google.protobuf.Any>} */ (\n jspb.Message.getRepeatedWrapperField(this, google_protobuf_any_pb.Any, 1002));\n};\n\n\n/**\n * @param {!Array<!proto.google.protobuf.Any>} value\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n*/\nproto.mediapipe.CalculatorGraphConfig.prototype.setGraphOptionsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1002, value);\n};\n\n\n/**\n * @param {!proto.google.protobuf.Any=} opt_value\n * @param {number=} opt_index\n * @return {!proto.google.protobuf.Any}\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.addGraphOptions = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1002, opt_value, proto.google.protobuf.Any, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.CalculatorGraphConfig} returns this\n */\nproto.mediapipe.CalculatorGraphConfig.prototype.clearGraphOptionsList = function() {\n return this.setGraphOptionsList([]);\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/tasks/cc/components/processors/proto/classifier_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.tasks.components.processors.proto.ClassifierOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.processors.proto.ClassifierOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.displayName = 'proto.mediapipe.tasks.components.processors.proto.ClassifierOptions';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.repeatedFields_ = [4,5];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n displayNamesLocale: jspb.Message.getFieldWithDefault(msg, 1, \"en\"),\n maxResults: jspb.Message.getFieldWithDefault(msg, 2, -1),\n scoreThreshold: (f = jspb.Message.getOptionalFloatingPointField(msg, 3)) == null ? undefined : f,\n categoryAllowlistList: (f = jspb.Message.getRepeatedField(msg, 4)) == null ? undefined : f,\n categoryDenylistList: (f = jspb.Message.getRepeatedField(msg, 5)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.processors.proto.ClassifierOptions;\n return proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setDisplayNamesLocale(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setMaxResults(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setScoreThreshold(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.addCategoryAllowlist(value);\n break;\n case 5:\n var value = /** @type {string} */ (reader.readString());\n msg.addCategoryDenylist(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.processors.proto.ClassifierOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt32(\n 2,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeFloat(\n 3,\n f\n );\n }\n f = message.getCategoryAllowlistList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 4,\n f\n );\n }\n f = message.getCategoryDenylistList();\n if (f.length > 0) {\n writer.writeRepeatedString(\n 5,\n f\n );\n }\n};\n\n\n/**\n * optional string display_names_locale = 1;\n * @return {string}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getDisplayNamesLocale = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"en\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setDisplayNamesLocale = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearDisplayNamesLocale = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasDisplayNamesLocale = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional int32 max_results = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getMaxResults = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, -1));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setMaxResults = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearMaxResults = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasMaxResults = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional float score_threshold = 3;\n * @return {number}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getScoreThreshold = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setScoreThreshold = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearScoreThreshold = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.hasScoreThreshold = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * repeated string category_allowlist = 4;\n * @return {!Array<string>}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getCategoryAllowlistList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 4));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setCategoryAllowlistList = function(value) {\n return jspb.Message.setField(this, 4, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.addCategoryAllowlist = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 4, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearCategoryAllowlistList = function() {\n return this.setCategoryAllowlistList([]);\n};\n\n\n/**\n * repeated string category_denylist = 5;\n * @return {!Array<string>}\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.getCategoryDenylistList = function() {\n return /** @type {!Array<string>} */ (jspb.Message.getRepeatedField(this, 5));\n};\n\n\n/**\n * @param {!Array<string>} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.setCategoryDenylistList = function(value) {\n return jspb.Message.setField(this, 5, value || []);\n};\n\n\n/**\n * @param {string} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.addCategoryDenylist = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 5, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.ClassifierOptions.prototype.clearCategoryDenylistList = function() {\n return this.setCategoryDenylistList([]);\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.components.processors.proto);\n","// source: mediapipe/calculators/tensor/inference_calculator.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_calculator_pb = require('../../../mediapipe/framework/calculator_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_pb);\nvar mediapipe_framework_calculator_options_pb = require('../../../mediapipe/framework/calculator_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_options_pb);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite', null, global);\ngoog.exportSymbol('proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.displayName = 'proto.mediapipe.InferenceCalculatorOptions';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.Delegate.displayName = 'proto.mediapipe.InferenceCalculatorOptions.Delegate';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.displayName = 'proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.displayName = 'proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.displayName = 'proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.displayName = 'proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n modelPath: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n useGpu: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n useNnapi: jspb.Message.getBooleanFieldWithDefault(msg, 3, false),\n cpuNumThread: jspb.Message.getFieldWithDefault(msg, 4, -1),\n delegate: (f = msg.getDelegate()) && proto.mediapipe.InferenceCalculatorOptions.Delegate.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions}\n */\nproto.mediapipe.InferenceCalculatorOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions;\n return proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions}\n */\nproto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setModelPath(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setUseGpu(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setUseNnapi(value);\n break;\n case 4:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setCpuNumThread(value);\n break;\n case 5:\n var value = new proto.mediapipe.InferenceCalculatorOptions.Delegate;\n reader.readMessage(value,proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader);\n msg.setDelegate(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeBool(\n 3,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 4));\n if (f != null) {\n writer.writeInt32(\n 4,\n f\n );\n }\n f = message.getDelegate();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n proto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter\n );\n }\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_ = [[1,2,3,4]];\n\n/**\n * @enum {number}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase = {\n DELEGATE_NOT_SET: 0,\n TFLITE: 1,\n GPU: 2,\n NNAPI: 3,\n XNNPACK: 4\n};\n\n/**\n * @return {proto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getDelegateCase = function() {\n return /** @type {proto.mediapipe.InferenceCalculatorOptions.Delegate.DelegateCase} */(jspb.Message.computeOneofCase(this, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.toObject = function(includeInstance, msg) {\n var f, obj = {\n tflite: (f = msg.getTflite()) && proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject(includeInstance, f),\n gpu: (f = msg.getGpu()) && proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject(includeInstance, f),\n nnapi: (f = msg.getNnapi()) && proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject(includeInstance, f),\n xnnpack: (f = msg.getXnnpack()) && proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions.Delegate;\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite;\n reader.readMessage(value,proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader);\n msg.setTflite(value);\n break;\n case 2:\n var value = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu;\n reader.readMessage(value,proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader);\n msg.setGpu(value);\n break;\n case 3:\n var value = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi;\n reader.readMessage(value,proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader);\n msg.setNnapi(value);\n break;\n case 4:\n var value = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack;\n reader.readMessage(value,proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader);\n msg.setXnnpack(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getTflite();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter\n );\n }\n f = message.getGpu();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter\n );\n }\n f = message.getNnapi();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter\n );\n }\n f = message.getXnnpack();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter\n );\n }\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.toObject = function(includeInstance, msg) {\n var f, obj = {\n\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite;\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.toObject = function(includeInstance, msg) {\n var f, obj = {\n useAdvancedGpuApi: jspb.Message.getBooleanFieldWithDefault(msg, 1, false),\n api: jspb.Message.getFieldWithDefault(msg, 4, 0),\n allowPrecisionLoss: jspb.Message.getBooleanFieldWithDefault(msg, 3, true),\n cachedKernelPath: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n serializedModelDir: (f = jspb.Message.getField(msg, 7)) == null ? undefined : f,\n modelToken: (f = jspb.Message.getField(msg, 8)) == null ? undefined : f,\n usage: jspb.Message.getFieldWithDefault(msg, 5, 2)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu;\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setUseAdvancedGpuApi(value);\n break;\n case 4:\n var value = /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api} */ (reader.readEnum());\n msg.setApi(value);\n break;\n case 3:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setAllowPrecisionLoss(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setCachedKernelPath(value);\n break;\n case 7:\n var value = /** @type {string} */ (reader.readString());\n msg.setSerializedModelDir(value);\n break;\n case 8:\n var value = /** @type {string} */ (reader.readString());\n msg.setModelToken(value);\n break;\n case 5:\n var value = /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage} */ (reader.readEnum());\n msg.setUsage(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {boolean} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBool(\n 1,\n f\n );\n }\n f = /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api} */ (jspb.Message.getField(message, 4));\n if (f != null) {\n writer.writeEnum(\n 4,\n f\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeBool(\n 3,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 7));\n if (f != null) {\n writer.writeString(\n 7,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 8));\n if (f != null) {\n writer.writeString(\n 8,\n f\n );\n }\n f = /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage} */ (jspb.Message.getField(message, 5));\n if (f != null) {\n writer.writeEnum(\n 5,\n f\n );\n }\n};\n\n\n/**\n * @enum {number}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api = {\n ANY: 0,\n OPENGL: 1,\n OPENCL: 2\n};\n\n/**\n * @enum {number}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage = {\n UNSPECIFIED: 0,\n FAST_SINGLE_ANSWER: 1,\n SUSTAINED_SPEED: 2\n};\n\n/**\n * optional bool use_advanced_gpu_api = 1;\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getUseAdvancedGpuApi = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setUseAdvancedGpuApi = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearUseAdvancedGpuApi = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasUseAdvancedGpuApi = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Api api = 4;\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getApi = function() {\n return /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api} */ (jspb.Message.getFieldWithDefault(this, 4, 0));\n};\n\n\n/**\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.Api} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setApi = function(value) {\n return jspb.Message.setField(this, 4, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearApi = function() {\n return jspb.Message.setField(this, 4, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasApi = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional bool allow_precision_loss = 3;\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getAllowPrecisionLoss = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, true));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setAllowPrecisionLoss = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearAllowPrecisionLoss = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasAllowPrecisionLoss = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string cached_kernel_path = 2;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getCachedKernelPath = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setCachedKernelPath = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearCachedKernelPath = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasCachedKernelPath = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string serialized_model_dir = 7;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getSerializedModelDir = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 7, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setSerializedModelDir = function(value) {\n return jspb.Message.setField(this, 7, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearSerializedModelDir = function() {\n return jspb.Message.setField(this, 7, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasSerializedModelDir = function() {\n return jspb.Message.getField(this, 7) != null;\n};\n\n\n/**\n * optional string model_token = 8;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getModelToken = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 8, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setModelToken = function(value) {\n return jspb.Message.setField(this, 8, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearModelToken = function() {\n return jspb.Message.setField(this, 8, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasModelToken = function() {\n return jspb.Message.getField(this, 8) != null;\n};\n\n\n/**\n * optional InferenceUsage usage = 5;\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.getUsage = function() {\n return /** @type {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage} */ (jspb.Message.getFieldWithDefault(this, 5, 2));\n};\n\n\n/**\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.InferenceUsage} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.setUsage = function(value) {\n return jspb.Message.setField(this, 5, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.clearUsage = function() {\n return jspb.Message.setField(this, 5, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu.prototype.hasUsage = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.toObject = function(includeInstance, msg) {\n var f, obj = {\n cacheDir: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n modelToken: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n acceleratorName: (f = jspb.Message.getField(msg, 3)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi;\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {string} */ (reader.readString());\n msg.setCacheDir(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setModelToken(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setAcceleratorName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {string} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeString(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeString(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional string cache_dir = 1;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getCacheDir = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setCacheDir = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearCacheDir = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasCacheDir = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional string model_token = 2;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getModelToken = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setModelToken = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearModelToken = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasModelToken = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string accelerator_name = 3;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.getAcceleratorName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.setAcceleratorName = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.clearAcceleratorName = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi.prototype.hasAcceleratorName = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.toObject = function(includeInstance, msg) {\n var f, obj = {\n numThreads: jspb.Message.getFieldWithDefault(msg, 1, -1)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack;\n return proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setNumThreads(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {number} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeInt32(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional int32 num_threads = 1;\n * @return {number}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.getNumThreads = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, -1));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.setNumThreads = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.clearNumThreads = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack.prototype.hasNumThreads = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional TfLite tflite = 1;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getTflite = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite|undefined} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n*/\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setTflite = function(value) {\n return jspb.Message.setOneofWrapperField(this, 1, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearTflite = function() {\n return this.setTflite(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasTflite = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional Gpu gpu = 2;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getGpu = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu, 2));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu|undefined} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n*/\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setGpu = function(value) {\n return jspb.Message.setOneofWrapperField(this, 2, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearGpu = function() {\n return this.setGpu(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasGpu = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Nnapi nnapi = 3;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getNnapi = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi|undefined} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n*/\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setNnapi = function(value) {\n return jspb.Message.setOneofWrapperField(this, 3, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearNnapi = function() {\n return this.setNnapi(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasNnapi = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional Xnnpack xnnpack = 4;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.getXnnpack = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack, 4));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack|undefined} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n*/\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.setXnnpack = function(value) {\n return jspb.Message.setOneofWrapperField(this, 4, proto.mediapipe.InferenceCalculatorOptions.Delegate.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions.Delegate} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.clearXnnpack = function() {\n return this.setXnnpack(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.Delegate.prototype.hasXnnpack = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.InferenceCalculatorOptions>}\n */\nproto.mediapipe.InferenceCalculatorOptions.ext = new jspb.ExtensionFieldInfo(\n 336783863,\n {ext: 0},\n proto.mediapipe.InferenceCalculatorOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.InferenceCalculatorOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[336783863] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.InferenceCalculatorOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter,\n proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[336783863] = proto.mediapipe.InferenceCalculatorOptions.ext;\n\n/**\n * optional string model_path = 1;\n * @return {string}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.getModelPath = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.setModelPath = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.clearModelPath = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.hasModelPath = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool use_gpu = 2;\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.getUseGpu = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.setUseGpu = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.clearUseGpu = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.hasUseGpu = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional bool use_nnapi = 3;\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.getUseNnapi = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 3, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.setUseNnapi = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.clearUseNnapi = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.hasUseNnapi = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional int32 cpu_num_thread = 4;\n * @return {number}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.getCpuNumThread = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 4, -1));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.setCpuNumThread = function(value) {\n return jspb.Message.setField(this, 4, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.clearCpuNumThread = function() {\n return jspb.Message.setField(this, 4, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.hasCpuNumThread = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional Delegate delegate = 5;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.getDelegate = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.InferenceCalculatorOptions.Delegate, 5));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate|undefined} value\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n*/\nproto.mediapipe.InferenceCalculatorOptions.prototype.setDelegate = function(value) {\n return jspb.Message.setWrapperField(this, 5, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.InferenceCalculatorOptions} returns this\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.clearDelegate = function() {\n return this.setDelegate(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.InferenceCalculatorOptions.prototype.hasDelegate = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.InferenceCalculatorOptions>}\n */\nproto.mediapipe.InferenceCalculatorOptions.ext = new jspb.ExtensionFieldInfo(\n 336783863,\n {ext: 0},\n proto.mediapipe.InferenceCalculatorOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.InferenceCalculatorOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[336783863] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.InferenceCalculatorOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.InferenceCalculatorOptions.serializeBinaryToWriter,\n proto.mediapipe.InferenceCalculatorOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[336783863] = proto.mediapipe.InferenceCalculatorOptions.ext;\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/tasks/cc/core/proto/acceleration.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_calculators_tensor_inference_calculator_pb = require('../../../../../mediapipe/calculators/tensor/inference_calculator_pb.js');\ngoog.object.extend(proto, mediapipe_calculators_tensor_inference_calculator_pb);\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.Acceleration', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.Acceleration.DelegateCase', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.core.proto.Acceleration = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_);\n};\ngoog.inherits(proto.mediapipe.tasks.core.proto.Acceleration, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.core.proto.Acceleration.displayName = 'proto.mediapipe.tasks.core.proto.Acceleration';\n}\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_ = [[1,2,4,5]];\n\n/**\n * @enum {number}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.DelegateCase = {\n DELEGATE_NOT_SET: 0,\n XNNPACK: 1,\n GPU: 2,\n TFLITE: 4,\n NNAPI: 5\n};\n\n/**\n * @return {proto.mediapipe.tasks.core.proto.Acceleration.DelegateCase}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.getDelegateCase = function() {\n return /** @type {proto.mediapipe.tasks.core.proto.Acceleration.DelegateCase} */(jspb.Message.computeOneofCase(this, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.core.proto.Acceleration.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.core.proto.Acceleration} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.Acceleration.toObject = function(includeInstance, msg) {\n var f, obj = {\n xnnpack: (f = msg.getXnnpack()) && mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Xnnpack.toObject(includeInstance, f),\n gpu: (f = msg.getGpu()) && mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Gpu.toObject(includeInstance, f),\n tflite: (f = msg.getTflite()) && mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.TfLite.toObject(includeInstance, f),\n nnapi: (f = msg.getNnapi()) && mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Nnapi.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.core.proto.Acceleration;\n return proto.mediapipe.tasks.core.proto.Acceleration.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.core.proto.Acceleration} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Xnnpack;\n reader.readMessage(value,mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Xnnpack.deserializeBinaryFromReader);\n msg.setXnnpack(value);\n break;\n case 2:\n var value = new mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Gpu;\n reader.readMessage(value,mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Gpu.deserializeBinaryFromReader);\n msg.setGpu(value);\n break;\n case 4:\n var value = new mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.TfLite;\n reader.readMessage(value,mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.TfLite.deserializeBinaryFromReader);\n msg.setTflite(value);\n break;\n case 5:\n var value = new mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Nnapi;\n reader.readMessage(value,mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Nnapi.deserializeBinaryFromReader);\n msg.setNnapi(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.core.proto.Acceleration.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.core.proto.Acceleration} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.Acceleration.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getXnnpack();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Xnnpack.serializeBinaryToWriter\n );\n }\n f = message.getGpu();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Gpu.serializeBinaryToWriter\n );\n }\n f = message.getTflite();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.TfLite.serializeBinaryToWriter\n );\n }\n f = message.getNnapi();\n if (f != null) {\n writer.writeMessage(\n 5,\n f,\n mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Nnapi.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack xnnpack = 1;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.getXnnpack = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack} */ (\n jspb.Message.getWrapperField(this, mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Xnnpack, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Xnnpack|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n*/\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.setXnnpack = function(value) {\n return jspb.Message.setOneofWrapperField(this, 1, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.clearXnnpack = function() {\n return this.setXnnpack(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.hasXnnpack = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional mediapipe.InferenceCalculatorOptions.Delegate.Gpu gpu = 2;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.getGpu = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu} */ (\n jspb.Message.getWrapperField(this, mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Gpu, 2));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Gpu|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n*/\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.setGpu = function(value) {\n return jspb.Message.setOneofWrapperField(this, 2, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.clearGpu = function() {\n return this.setGpu(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.hasGpu = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional mediapipe.InferenceCalculatorOptions.Delegate.TfLite tflite = 4;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.getTflite = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite} */ (\n jspb.Message.getWrapperField(this, mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.TfLite, 4));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.TfLite|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n*/\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.setTflite = function(value) {\n return jspb.Message.setOneofWrapperField(this, 4, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.clearTflite = function() {\n return this.setTflite(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.hasTflite = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional mediapipe.InferenceCalculatorOptions.Delegate.Nnapi nnapi = 5;\n * @return {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.getNnapi = function() {\n return /** @type{?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi} */ (\n jspb.Message.getWrapperField(this, mediapipe_calculators_tensor_inference_calculator_pb.InferenceCalculatorOptions.Delegate.Nnapi, 5));\n};\n\n\n/**\n * @param {?proto.mediapipe.InferenceCalculatorOptions.Delegate.Nnapi|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n*/\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.setNnapi = function(value) {\n return jspb.Message.setOneofWrapperField(this, 5, proto.mediapipe.tasks.core.proto.Acceleration.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.Acceleration} returns this\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.clearNnapi = function() {\n return this.setNnapi(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.Acceleration.prototype.hasNnapi = function() {\n return jspb.Message.getField(this, 5) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.core.proto);\n","// source: mediapipe/tasks/cc/core/proto/external_file.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.ExternalFile', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.FileDescriptorMeta', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.FilePointerMeta', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.core.proto.ExternalFile = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.core.proto.ExternalFile, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.core.proto.ExternalFile.displayName = 'proto.mediapipe.tasks.core.proto.ExternalFile';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.core.proto.FileDescriptorMeta, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.core.proto.FileDescriptorMeta.displayName = 'proto.mediapipe.tasks.core.proto.FileDescriptorMeta';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.core.proto.FilePointerMeta, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.core.proto.FilePointerMeta.displayName = 'proto.mediapipe.tasks.core.proto.FilePointerMeta';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.core.proto.ExternalFile.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.core.proto.ExternalFile} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.toObject = function(includeInstance, msg) {\n var f, obj = {\n fileContent: msg.getFileContent_asB64(),\n fileName: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n fileDescriptorMeta: (f = msg.getFileDescriptorMeta()) && proto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject(includeInstance, f),\n filePointerMeta: (f = msg.getFilePointerMeta()) && proto.mediapipe.tasks.core.proto.FilePointerMeta.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.core.proto.ExternalFile;\n return proto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.core.proto.ExternalFile} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setFileContent(value);\n break;\n case 2:\n var value = /** @type {string} */ (reader.readString());\n msg.setFileName(value);\n break;\n case 3:\n var value = new proto.mediapipe.tasks.core.proto.FileDescriptorMeta;\n reader.readMessage(value,proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader);\n msg.setFileDescriptorMeta(value);\n break;\n case 4:\n var value = new proto.mediapipe.tasks.core.proto.FilePointerMeta;\n reader.readMessage(value,proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader);\n msg.setFilePointerMeta(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.core.proto.ExternalFile.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.core.proto.ExternalFile} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBytes(\n 1,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeString(\n 2,\n f\n );\n }\n f = message.getFileDescriptorMeta();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n proto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter\n );\n }\n f = message.getFilePointerMeta();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n proto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional bytes file_content = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes file_content = 1;\n * This is a type-conversion wrapper around `getFileContent()`\n * @return {string}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getFileContent()));\n};\n\n\n/**\n * optional bytes file_content = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getFileContent()`\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileContent_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getFileContent()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileContent = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileContent = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileContent = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional string file_name = 2;\n * @return {string}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 2, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileName = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileName = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileName = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional FileDescriptorMeta file_descriptor_meta = 3;\n * @return {?proto.mediapipe.tasks.core.proto.FileDescriptorMeta}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFileDescriptorMeta = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.FileDescriptorMeta} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.tasks.core.proto.FileDescriptorMeta, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.FileDescriptorMeta|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n*/\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFileDescriptorMeta = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFileDescriptorMeta = function() {\n return this.setFileDescriptorMeta(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFileDescriptorMeta = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional FilePointerMeta file_pointer_meta = 4;\n * @return {?proto.mediapipe.tasks.core.proto.FilePointerMeta}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.getFilePointerMeta = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.FilePointerMeta} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.tasks.core.proto.FilePointerMeta, 4));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.FilePointerMeta|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n*/\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.setFilePointerMeta = function(value) {\n return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.ExternalFile} returns this\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.clearFilePointerMeta = function() {\n return this.setFilePointerMeta(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.ExternalFile.prototype.hasFilePointerMeta = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.toObject = function(includeInstance, msg) {\n var f, obj = {\n fd: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n length: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n offset: (f = jspb.Message.getField(msg, 3)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.core.proto.FileDescriptorMeta;\n return proto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setFd(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLength(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setOffset(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {number} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt64(\n 2,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeInt64(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional int32 fd = 1;\n * @return {number}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getFd = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setFd = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearFd = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasFd = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional int64 length = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getLength = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setLength = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearLength = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasLength = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional int64 offset = 3;\n * @return {number}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.getOffset = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.setOffset = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.FileDescriptorMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.clearOffset = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.FileDescriptorMeta.prototype.hasOffset = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.core.proto.FilePointerMeta.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.core.proto.FilePointerMeta} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.toObject = function(includeInstance, msg) {\n var f, obj = {\n pointer: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n length: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.core.proto.FilePointerMeta;\n return proto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.core.proto.FilePointerMeta} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readUint64());\n msg.setPointer(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setLength(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.core.proto.FilePointerMeta} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {number} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeUint64(\n 1,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional uint64 pointer = 1;\n * @return {number}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.getPointer = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.setPointer = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.clearPointer = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.hasPointer = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional int64 length = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.getLength = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.setLength = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.FilePointerMeta} returns this\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.clearLength = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.FilePointerMeta.prototype.hasLength = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.core.proto);\n","// source: mediapipe/tasks/cc/core/proto/base_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_tasks_cc_core_proto_acceleration_pb = require('../../../../../mediapipe/tasks/cc/core/proto/acceleration_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_core_proto_acceleration_pb);\nvar mediapipe_tasks_cc_core_proto_external_file_pb = require('../../../../../mediapipe/tasks/cc/core/proto/external_file_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_core_proto_external_file_pb);\ngoog.exportSymbol('proto.mediapipe.tasks.core.proto.BaseOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.core.proto.BaseOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.core.proto.BaseOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.core.proto.BaseOptions.displayName = 'proto.mediapipe.tasks.core.proto.BaseOptions';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.core.proto.BaseOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.core.proto.BaseOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n modelAsset: (f = msg.getModelAsset()) && mediapipe_tasks_cc_core_proto_external_file_pb.ExternalFile.toObject(includeInstance, f),\n useStreamMode: jspb.Message.getBooleanFieldWithDefault(msg, 2, false),\n acceleration: (f = msg.getAcceleration()) && mediapipe_tasks_cc_core_proto_acceleration_pb.Acceleration.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.core.proto.BaseOptions;\n return proto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.core.proto.BaseOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new mediapipe_tasks_cc_core_proto_external_file_pb.ExternalFile;\n reader.readMessage(value,mediapipe_tasks_cc_core_proto_external_file_pb.ExternalFile.deserializeBinaryFromReader);\n msg.setModelAsset(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setUseStreamMode(value);\n break;\n case 3:\n var value = new mediapipe_tasks_cc_core_proto_acceleration_pb.Acceleration;\n reader.readMessage(value,mediapipe_tasks_cc_core_proto_acceleration_pb.Acceleration.deserializeBinaryFromReader);\n msg.setAcceleration(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.core.proto.BaseOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.core.proto.BaseOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getModelAsset();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n mediapipe_tasks_cc_core_proto_external_file_pb.ExternalFile.serializeBinaryToWriter\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeBool(\n 2,\n f\n );\n }\n f = message.getAcceleration();\n if (f != null) {\n writer.writeMessage(\n 3,\n f,\n mediapipe_tasks_cc_core_proto_acceleration_pb.Acceleration.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * optional ExternalFile model_asset = 1;\n * @return {?proto.mediapipe.tasks.core.proto.ExternalFile}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.getModelAsset = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.ExternalFile} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_core_proto_external_file_pb.ExternalFile, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.ExternalFile|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n*/\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.setModelAsset = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearModelAsset = function() {\n return this.setModelAsset(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasModelAsset = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool use_stream_mode = 2;\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.getUseStreamMode = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.setUseStreamMode = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearUseStreamMode = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasUseStreamMode = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional Acceleration acceleration = 3;\n * @return {?proto.mediapipe.tasks.core.proto.Acceleration}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.getAcceleration = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.Acceleration} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_core_proto_acceleration_pb.Acceleration, 3));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.Acceleration|undefined} value\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n*/\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.setAcceleration = function(value) {\n return jspb.Message.setWrapperField(this, 3, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.core.proto.BaseOptions} returns this\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.clearAcceleration = function() {\n return this.setAcceleration(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.core.proto.BaseOptions.prototype.hasAcceleration = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.core.proto);\n","// source: mediapipe/tasks/cc/audio/audio_classifier/proto/audio_classifier_graph_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_calculator_pb = require('../../../../../../mediapipe/framework/calculator_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_pb);\nvar mediapipe_framework_calculator_options_pb = require('../../../../../../mediapipe/framework/calculator_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_options_pb);\nvar mediapipe_tasks_cc_components_processors_proto_classifier_options_pb = require('../../../../../../mediapipe/tasks/cc/components/processors/proto/classifier_options_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_components_processors_proto_classifier_options_pb);\nvar mediapipe_tasks_cc_core_proto_base_options_pb = require('../../../../../../mediapipe/tasks/cc/core/proto/base_options_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_core_proto_base_options_pb);\ngoog.exportSymbol('proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.displayName = 'proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n baseOptions: (f = msg.getBaseOptions()) && mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.toObject(includeInstance, f),\n classifierOptions: (f = msg.getClassifierOptions()) && mediapipe_tasks_cc_components_processors_proto_classifier_options_pb.ClassifierOptions.toObject(includeInstance, f),\n defaultInputAudioSampleRate: (f = jspb.Message.getOptionalFloatingPointField(msg, 3)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions;\n return proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions;\n reader.readMessage(value,mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.deserializeBinaryFromReader);\n msg.setBaseOptions(value);\n break;\n case 2:\n var value = new mediapipe_tasks_cc_components_processors_proto_classifier_options_pb.ClassifierOptions;\n reader.readMessage(value,mediapipe_tasks_cc_components_processors_proto_classifier_options_pb.ClassifierOptions.deserializeBinaryFromReader);\n msg.setClassifierOptions(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readDouble());\n msg.setDefaultInputAudioSampleRate(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBaseOptions();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.serializeBinaryToWriter\n );\n }\n f = message.getClassifierOptions();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n mediapipe_tasks_cc_components_processors_proto_classifier_options_pb.ClassifierOptions.serializeBinaryToWriter\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeDouble(\n 3,\n f\n );\n }\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions>}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext = new jspb.ExtensionFieldInfo(\n 451755788,\n {ext: 0},\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[451755788] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.serializeBinaryToWriter,\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[451755788] = proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext;\n\n/**\n * optional mediapipe.tasks.core.proto.BaseOptions base_options = 1;\n * @return {?proto.mediapipe.tasks.core.proto.BaseOptions}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.getBaseOptions = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.BaseOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.BaseOptions|undefined} value\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n*/\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.setBaseOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.clearBaseOptions = function() {\n return this.setBaseOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.hasBaseOptions = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional mediapipe.tasks.components.processors.proto.ClassifierOptions classifier_options = 2;\n * @return {?proto.mediapipe.tasks.components.processors.proto.ClassifierOptions}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.getClassifierOptions = function() {\n return /** @type{?proto.mediapipe.tasks.components.processors.proto.ClassifierOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_components_processors_proto_classifier_options_pb.ClassifierOptions, 2));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.components.processors.proto.ClassifierOptions|undefined} value\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n*/\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.setClassifierOptions = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.clearClassifierOptions = function() {\n return this.setClassifierOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.hasClassifierOptions = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional double default_input_audio_sample_rate = 3;\n * @return {number}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.getDefaultInputAudioSampleRate = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 3, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.setDefaultInputAudioSampleRate = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.clearDefaultInputAudioSampleRate = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.prototype.hasDefaultInputAudioSampleRate = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions>}\n */\nproto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext = new jspb.ExtensionFieldInfo(\n 451755788,\n {ext: 0},\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[451755788] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.serializeBinaryToWriter,\n proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[451755788] = proto.mediapipe.tasks.audio.audio_classifier.proto.AudioClassifierGraphOptions.ext;\n\ngoog.object.extend(exports, proto.mediapipe.tasks.audio.audio_classifier.proto);\n","// source: mediapipe/framework/formats/classification.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.Classification', null, global);\ngoog.exportSymbol('proto.mediapipe.ClassificationList', null, global);\ngoog.exportSymbol('proto.mediapipe.ClassificationListCollection', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.Classification = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.Classification, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.Classification.displayName = 'proto.mediapipe.Classification';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.ClassificationList = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.ClassificationList.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.ClassificationList, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.ClassificationList.displayName = 'proto.mediapipe.ClassificationList';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.ClassificationListCollection = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.ClassificationListCollection.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.ClassificationListCollection, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.ClassificationListCollection.displayName = 'proto.mediapipe.ClassificationListCollection';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.Classification.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.Classification.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.Classification} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.Classification.toObject = function(includeInstance, msg) {\n var f, obj = {\n index: (f = jspb.Message.getField(msg, 1)) == null ? undefined : f,\n score: (f = jspb.Message.getOptionalFloatingPointField(msg, 2)) == null ? undefined : f,\n label: (f = jspb.Message.getField(msg, 3)) == null ? undefined : f,\n displayName: (f = jspb.Message.getField(msg, 4)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.Classification}\n */\nproto.mediapipe.Classification.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.Classification;\n return proto.mediapipe.Classification.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.Classification} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.Classification}\n */\nproto.mediapipe.Classification.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setIndex(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readFloat());\n msg.setScore(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setLabel(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setDisplayName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.Classification.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.Classification.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.Classification} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.Classification.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {number} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeInt32(\n 1,\n f\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeFloat(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeString(\n 3,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 4));\n if (f != null) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional int32 index = 1;\n * @return {number}\n */\nproto.mediapipe.Classification.prototype.getIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 1, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.setIndex = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.clearIndex = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.Classification.prototype.hasIndex = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional float score = 2;\n * @return {number}\n */\nproto.mediapipe.Classification.prototype.getScore = function() {\n return /** @type {number} */ (jspb.Message.getFloatingPointFieldWithDefault(this, 2, 0.0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.setScore = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.clearScore = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.Classification.prototype.hasScore = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string label = 3;\n * @return {string}\n */\nproto.mediapipe.Classification.prototype.getLabel = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.setLabel = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.clearLabel = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.Classification.prototype.hasLabel = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string display_name = 4;\n * @return {string}\n */\nproto.mediapipe.Classification.prototype.getDisplayName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.setDisplayName = function(value) {\n return jspb.Message.setField(this, 4, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.Classification} returns this\n */\nproto.mediapipe.Classification.prototype.clearDisplayName = function() {\n return jspb.Message.setField(this, 4, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.Classification.prototype.hasDisplayName = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.ClassificationList.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.ClassificationList.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.ClassificationList.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.ClassificationList} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ClassificationList.toObject = function(includeInstance, msg) {\n var f, obj = {\n classificationList: jspb.Message.toObjectList(msg.getClassificationList(),\n proto.mediapipe.Classification.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.ClassificationList}\n */\nproto.mediapipe.ClassificationList.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.ClassificationList;\n return proto.mediapipe.ClassificationList.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.ClassificationList} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.ClassificationList}\n */\nproto.mediapipe.ClassificationList.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.Classification;\n reader.readMessage(value,proto.mediapipe.Classification.deserializeBinaryFromReader);\n msg.addClassification(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.ClassificationList.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.ClassificationList.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.ClassificationList} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ClassificationList.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getClassificationList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.Classification.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated Classification classification = 1;\n * @return {!Array<!proto.mediapipe.Classification>}\n */\nproto.mediapipe.ClassificationList.prototype.getClassificationList = function() {\n return /** @type{!Array<!proto.mediapipe.Classification>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.Classification, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.Classification>} value\n * @return {!proto.mediapipe.ClassificationList} returns this\n*/\nproto.mediapipe.ClassificationList.prototype.setClassificationList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.Classification=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.Classification}\n */\nproto.mediapipe.ClassificationList.prototype.addClassification = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.Classification, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.ClassificationList} returns this\n */\nproto.mediapipe.ClassificationList.prototype.clearClassificationList = function() {\n return this.setClassificationList([]);\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.ClassificationListCollection.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.ClassificationListCollection.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.ClassificationListCollection.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.ClassificationListCollection} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ClassificationListCollection.toObject = function(includeInstance, msg) {\n var f, obj = {\n classificationListList: jspb.Message.toObjectList(msg.getClassificationListList(),\n proto.mediapipe.ClassificationList.toObject, includeInstance)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.ClassificationListCollection}\n */\nproto.mediapipe.ClassificationListCollection.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.ClassificationListCollection;\n return proto.mediapipe.ClassificationListCollection.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.ClassificationListCollection} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.ClassificationListCollection}\n */\nproto.mediapipe.ClassificationListCollection.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.ClassificationList;\n reader.readMessage(value,proto.mediapipe.ClassificationList.deserializeBinaryFromReader);\n msg.addClassificationList(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.ClassificationListCollection.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.ClassificationListCollection.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.ClassificationListCollection} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.ClassificationListCollection.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getClassificationListList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.ClassificationList.serializeBinaryToWriter\n );\n }\n};\n\n\n/**\n * repeated ClassificationList classification_list = 1;\n * @return {!Array<!proto.mediapipe.ClassificationList>}\n */\nproto.mediapipe.ClassificationListCollection.prototype.getClassificationListList = function() {\n return /** @type{!Array<!proto.mediapipe.ClassificationList>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.ClassificationList, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.ClassificationList>} value\n * @return {!proto.mediapipe.ClassificationListCollection} returns this\n*/\nproto.mediapipe.ClassificationListCollection.prototype.setClassificationListList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.ClassificationList=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.ClassificationList}\n */\nproto.mediapipe.ClassificationListCollection.prototype.addClassificationList = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.ClassificationList, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.ClassificationListCollection} returns this\n */\nproto.mediapipe.ClassificationListCollection.prototype.clearClassificationListList = function() {\n return this.setClassificationListList([]);\n};\n\n\ngoog.object.extend(exports, proto.mediapipe);\n","// source: mediapipe/tasks/cc/components/containers/proto/classifications.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_formats_classification_pb = require('../../../../../../mediapipe/framework/formats/classification_pb.js');\ngoog.object.extend(proto, mediapipe_framework_formats_classification_pb);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.ClassificationResult', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.Classifications', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.Classifications, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.Classifications.displayName = 'proto.mediapipe.tasks.components.containers.proto.Classifications';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.tasks.components.containers.proto.ClassificationResult.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.ClassificationResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.ClassificationResult.displayName = 'proto.mediapipe.tasks.components.containers.proto.ClassificationResult';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.Classifications.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.Classifications} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.toObject = function(includeInstance, msg) {\n var f, obj = {\n classificationList: (f = msg.getClassificationList()) && mediapipe_framework_formats_classification_pb.ClassificationList.toObject(includeInstance, f),\n headIndex: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f,\n headName: (f = jspb.Message.getField(msg, 3)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.Classifications;\n return proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.Classifications} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 4:\n var value = new mediapipe_framework_formats_classification_pb.ClassificationList;\n reader.readMessage(value,mediapipe_framework_formats_classification_pb.ClassificationList.deserializeBinaryFromReader);\n msg.setClassificationList(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setHeadIndex(value);\n break;\n case 3:\n var value = /** @type {string} */ (reader.readString());\n msg.setHeadName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.Classifications} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getClassificationList();\n if (f != null) {\n writer.writeMessage(\n 4,\n f,\n mediapipe_framework_formats_classification_pb.ClassificationList.serializeBinaryToWriter\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt32(\n 2,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeString(\n 3,\n f\n );\n }\n};\n\n\n/**\n * optional mediapipe.ClassificationList classification_list = 4;\n * @return {?proto.mediapipe.ClassificationList}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getClassificationList = function() {\n return /** @type{?proto.mediapipe.ClassificationList} */ (\n jspb.Message.getWrapperField(this, mediapipe_framework_formats_classification_pb.ClassificationList, 4));\n};\n\n\n/**\n * @param {?proto.mediapipe.ClassificationList|undefined} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n*/\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setClassificationList = function(value) {\n return jspb.Message.setWrapperField(this, 4, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearClassificationList = function() {\n return this.setClassificationList(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasClassificationList = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n/**\n * optional int32 head_index = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getHeadIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setHeadIndex = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearHeadIndex = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasHeadIndex = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional string head_name = 3;\n * @return {string}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.getHeadName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.setHeadName = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.clearHeadName = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Classifications.prototype.hasHeadName = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.ClassificationResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n classificationsList: jspb.Message.toObjectList(msg.getClassificationsList(),\n proto.mediapipe.tasks.components.containers.proto.Classifications.toObject, includeInstance),\n timestampMs: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.ClassificationResult;\n return proto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.tasks.components.containers.proto.Classifications;\n reader.readMessage(value,proto.mediapipe.tasks.components.containers.proto.Classifications.deserializeBinaryFromReader);\n msg.addClassifications(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestampMs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.ClassificationResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getClassificationsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.tasks.components.containers.proto.Classifications.serializeBinaryToWriter\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated Classifications classifications = 1;\n * @return {!Array<!proto.mediapipe.tasks.components.containers.proto.Classifications>}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.getClassificationsList = function() {\n return /** @type{!Array<!proto.mediapipe.tasks.components.containers.proto.Classifications>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.tasks.components.containers.proto.Classifications, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.tasks.components.containers.proto.Classifications>} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} returns this\n*/\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.setClassificationsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.tasks.components.containers.proto.Classifications=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.tasks.components.containers.proto.Classifications}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.addClassifications = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.tasks.components.containers.proto.Classifications, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.clearClassificationsList = function() {\n return this.setClassificationsList([]);\n};\n\n\n/**\n * optional int64 timestamp_ms = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.getTimestampMs = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.setTimestampMs = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.ClassificationResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.clearTimestampMs = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.ClassificationResult.prototype.hasTimestampMs = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.components.containers.proto);\n","\"use strict\";\n/**\n * Copyright 2023 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isIOS = exports.isWebKit = void 0;\n/** Returns whether the underlying rendering engine is WebKit. */\nfunction isWebKit(browser = navigator) {\n const userAgent = browser.userAgent;\n // Note that this returns true for Chrome on iOS (which is running WebKit) as\n // it uses \"CriOS\".\n return userAgent.includes('Safari') && !userAgent.includes('Chrome');\n}\nexports.isWebKit = isWebKit;\n/** Detect if code is running on iOS. */\nfunction isIOS() {\n // Source:\n // https://stackoverflow.com/questions/9038625/detect-if-device-is-ios\n return [\n 'iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone',\n 'iPod'\n // tslint:disable-next-line:deprecation\n ].includes(navigator.platform)\n // iPad on iOS 13 detection\n || (navigator.userAgent.includes('Mac') && 'ontouchend' in document);\n}\nexports.isIOS = isIOS;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1fdXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvd2ViL2dyYXBoX3J1bm5lci9wbGF0Zm9ybV91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7OztBQUVILGlFQUFpRTtBQUNqRSxTQUFnQixRQUFRLENBQUMsT0FBTyxHQUFHLFNBQVM7SUFDMUMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUNwQyw2RUFBNkU7SUFDN0UsbUJBQW1CO0lBQ25CLE9BQU8sU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUxELDRCQUtDO0FBRUQsd0NBQXdDO0FBQ3hDLFNBQWdCLEtBQUs7SUFDbkIsVUFBVTtJQUNWLHNFQUFzRTtJQUN0RSxPQUFPO1FBQ0wsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLFFBQVE7UUFDeEUsTUFBTTtRQUNOLHVDQUF1QztLQUN4QyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDO1FBQzFCLDJCQUEyQjtXQUN4QixDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLFlBQVksSUFBSSxRQUFRLENBQUMsQ0FBQztBQUMzRSxDQUFDO0FBVkQsc0JBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDIzIFRoZSBNZWRpYVBpcGUgQXV0aG9ycy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLyoqIFJldHVybnMgd2hldGhlciB0aGUgdW5kZXJseWluZyByZW5kZXJpbmcgZW5naW5lIGlzIFdlYktpdC4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1dlYktpdChicm93c2VyID0gbmF2aWdhdG9yKSB7XG4gIGNvbnN0IHVzZXJBZ2VudCA9IGJyb3dzZXIudXNlckFnZW50O1xuICAvLyBOb3RlIHRoYXQgdGhpcyByZXR1cm5zIHRydWUgZm9yIENocm9tZSBvbiBpT1MgKHdoaWNoIGlzIHJ1bm5pbmcgV2ViS2l0KSBhc1xuICAvLyBpdCB1c2VzIFwiQ3JpT1NcIi5cbiAgcmV0dXJuIHVzZXJBZ2VudC5pbmNsdWRlcygnU2FmYXJpJykgJiYgIXVzZXJBZ2VudC5pbmNsdWRlcygnQ2hyb21lJyk7XG59XG5cbi8qKiBEZXRlY3QgaWYgY29kZSBpcyBydW5uaW5nIG9uIGlPUy4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0lPUygpIHtcbiAgLy8gU291cmNlOlxuICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy85MDM4NjI1L2RldGVjdC1pZi1kZXZpY2UtaXMtaW9zXG4gIHJldHVybiBbXG4gICAgJ2lQYWQgU2ltdWxhdG9yJywgJ2lQaG9uZSBTaW11bGF0b3InLCAnaVBvZCBTaW11bGF0b3InLCAnaVBhZCcsICdpUGhvbmUnLFxuICAgICdpUG9kJ1xuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpkZXByZWNhdGlvblxuICBdLmluY2x1ZGVzKG5hdmlnYXRvci5wbGF0Zm9ybSlcbiAgICAgIC8vIGlQYWQgb24gaU9TIDEzIGRldGVjdGlvblxuICAgICAgfHwgKG5hdmlnYXRvci51c2VyQWdlbnQuaW5jbHVkZXMoJ01hYycpICYmICdvbnRvdWNoZW5kJyBpbiBkb2N1bWVudCk7XG59XG4iXX0=","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createGraphRunner = exports.createMediaPipeLib = exports.GraphRunner = exports.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME = void 0;\n// Placeholder for internal dependency on assertTruthy\n// Placeholder for internal dependency on jsloader\nconst platform_utils_1 = require(\"../../web/graph_runner/platform_utils\");\n/**\n * The name of the internal listener that we use to obtain the calculator graph\n * config. Intended for internal usage. Exported for testing only.\n */\nexports.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME = '__graph_config__';\n/**\n * Simple class to run an arbitrary image-in/image-out MediaPipe graph (i.e.\n * as created by wasm_mediapipe_demo BUILD macro), and either render results\n * into canvas, or else return the output WebGLTexture. Takes a WebAssembly\n * Module.\n */\nclass GraphRunner {\n /**\n * Creates a new MediaPipe WASM module. Must be called *after* wasm Module has\n * initialized. Note that we take control of the GL canvas from here on out,\n * and will resize it to fit input.\n *\n * @param module The underlying Wasm Module to use.\n * @param glCanvas The type of the GL canvas to use, or `null` if no GL\n * canvas should be initialzed. Initializes an offscreen canvas if not\n * provided.\n */\n constructor(module, glCanvas) {\n this.autoResizeCanvas = true;\n this.wasmModule = module;\n this.audioPtr = null;\n this.audioSize = 0;\n this.hasMultiStreamSupport =\n (typeof this.wasmModule._addIntToInputStream === 'function');\n if (glCanvas !== undefined) {\n this.wasmModule.canvas = glCanvas;\n }\n else if (typeof OffscreenCanvas !== 'undefined' && !(0, platform_utils_1.isWebKit)()) {\n // If no canvas is provided, assume Chrome/Firefox and just make an\n // OffscreenCanvas for GPU processing. Note that we exclude Safari\n // since it does not (yet) support WebGL for OffscreenCanvas.\n this.wasmModule.canvas = new OffscreenCanvas(1, 1);\n }\n else {\n console.warn('OffscreenCanvas not supported and GraphRunner constructor ' +\n 'glCanvas parameter is undefined. Creating backup canvas.');\n this.wasmModule.canvas = document.createElement('canvas');\n }\n }\n /**\n * Convenience helper to load a MediaPipe graph from a file and pass it to\n * setGraph.\n * @param graphFile The url of the MediaPipe graph file to load.\n */\n async initializeGraph(graphFile) {\n // Fetch and set graph\n const response = await fetch(graphFile);\n const graphData = await response.arrayBuffer();\n const isBinary = !(graphFile.endsWith('.pbtxt') || graphFile.endsWith('.textproto'));\n this.setGraph(new Uint8Array(graphData), isBinary);\n }\n /**\n * Convenience helper for calling setGraph with a string representing a text\n * proto config.\n * @param graphConfig The text proto graph config, expected to be a string in\n * default JavaScript UTF-16 format.\n */\n setGraphFromString(graphConfig) {\n this.setGraph((new TextEncoder()).encode(graphConfig), false);\n }\n /**\n * Takes the raw data from a MediaPipe graph, and passes it to C++ to be run\n * over the video stream. Will replace the previously running MediaPipe graph,\n * if there is one.\n * @param graphData The raw MediaPipe graph data, either in binary\n * protobuffer format (.binarypb), or else in raw text format (.pbtxt or\n * .textproto).\n * @param isBinary This should be set to true if the graph is in\n * binary format, and false if it is in human-readable text format.\n */\n setGraph(graphData, isBinary) {\n const size = graphData.length;\n const dataPtr = this.wasmModule._malloc(size);\n this.wasmModule.HEAPU8.set(graphData, dataPtr);\n if (isBinary) {\n this.wasmModule._changeBinaryGraph(size, dataPtr);\n }\n else {\n this.wasmModule._changeTextGraph(size, dataPtr);\n }\n this.wasmModule._free(dataPtr);\n }\n /**\n * Configures the current graph to handle audio processing in a certain way\n * for all its audio input streams. Additionally can configure audio headers\n * (both input side packets as well as input stream headers), but these\n * configurations only take effect if called before the graph is set/started.\n * @param numChannels The number of channels of audio input. Only 1\n * is supported for now.\n * @param numSamples The number of samples that are taken in each\n * audio capture.\n * @param sampleRate The rate, in Hz, of the sampling.\n * @param streamName The optional name of the input stream to additionally\n * configure with audio information. This configuration only occurs before\n * the graph is set/started. If unset, a default stream name will be used.\n * @param headerName The optional name of the header input side packet to\n * additionally configure with audio information. This configuration only\n * occurs before the graph is set/started. If unset, a default header name\n * will be used.\n */\n configureAudio(numChannels, numSamples, sampleRate, streamName, headerName) {\n if (!this.wasmModule._configureAudio) {\n console.warn('Attempting to use configureAudio without support for input audio. ' +\n 'Is build dep \":gl_graph_runner_audio\" missing?');\n }\n streamName = streamName || 'input_audio';\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n headerName = headerName || 'audio_header';\n this.wrapStringPtr(headerName, (headerNamePtr) => {\n this.wasmModule._configureAudio(streamNamePtr, headerNamePtr, numChannels, numSamples, sampleRate);\n });\n });\n }\n /**\n * Allows disabling automatic canvas resizing, in case clients want to control\n * control this.\n * @param resize True will re-enable automatic canvas resizing, while false\n * will disable the feature.\n */\n setAutoResizeCanvas(resize) {\n this.autoResizeCanvas = resize;\n }\n /**\n * Allows disabling the automatic render-to-screen code, in case clients don't\n * need/want this. In particular, this removes the requirement for pipelines\n * to have access to GPU resources, as well as the requirement for graphs to\n * have \"input_frames_gpu\" and \"output_frames_gpu\" streams defined, so pure\n * CPU pipelines and non-video pipelines can be created.\n * NOTE: This only affects future graph initializations (via setGraph or\n * initializeGraph), and does NOT affect the currently running graph, so\n * calls to this should be made *before* setGraph/initializeGraph for the\n * graph file being targeted.\n * @param enabled True will re-enable automatic render-to-screen code and\n * cause GPU resources to once again be requested, while false will\n * disable the feature.\n */\n setAutoRenderToScreen(enabled) {\n this.wasmModule._setAutoRenderToScreen(enabled);\n }\n /**\n * Bind texture to our internal canvas, and upload image source to GPU.\n * Returns tuple [width, height] of texture. Intended for internal usage.\n */\n bindTextureToStream(imageSource, streamNamePtr) {\n if (!this.wasmModule.canvas) {\n throw new Error('No OpenGL canvas configured.');\n }\n if (!streamNamePtr) {\n // TODO: Remove this path once completely refactored away.\n console.assert(this.wasmModule._bindTextureToCanvas());\n }\n else {\n this.wasmModule._bindTextureToStream(streamNamePtr);\n }\n const gl = (this.wasmModule.canvas.getContext('webgl2') ||\n this.wasmModule.canvas.getContext('webgl'));\n if (!gl) {\n throw new Error('Failed to obtain WebGL context from the provided canvas. ' +\n '`getContext()` should only be invoked with `webgl` or `webgl2`.');\n }\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, imageSource);\n let width, height;\n if (imageSource.videoWidth) {\n width = imageSource.videoWidth;\n height = imageSource.videoHeight;\n }\n else if (imageSource.naturalWidth) {\n // TODO: Ensure this works with SVG images\n width = imageSource.naturalWidth;\n height = imageSource.naturalHeight;\n }\n else {\n width = imageSource.width;\n height = imageSource.height;\n }\n if (this.autoResizeCanvas &&\n (width !== this.wasmModule.canvas.width ||\n height !== this.wasmModule.canvas.height)) {\n this.wasmModule.canvas.width = width;\n this.wasmModule.canvas.height = height;\n }\n return [width, height];\n }\n /**\n * Takes the raw data from a JS image source, and sends it to C++ to be\n * processed, waiting synchronously for the response. Note that we will resize\n * our GL canvas to fit the input, so input size should only change\n * infrequently.\n * @param imageSource An image source to process.\n * @param timestamp The timestamp of the current frame, in ms.\n * @return texture? The WebGL texture reference, if one was produced.\n */\n processGl(imageSource, timestamp) {\n // Bind to default input stream\n const [width, height] = this.bindTextureToStream(imageSource);\n // 2 ints and a ll (timestamp)\n const frameDataPtr = this.wasmModule._malloc(16);\n this.wasmModule.HEAPU32[frameDataPtr / 4] = width;\n this.wasmModule.HEAPU32[(frameDataPtr / 4) + 1] = height;\n this.wasmModule.HEAPF64[(frameDataPtr / 8) + 1] = timestamp;\n // outputPtr points in HEAPF32-space to running mspf calculations, which we\n // don't use at the moment.\n // tslint:disable-next-line:no-unused-variable\n const outputPtr = this.wasmModule._processGl(frameDataPtr) / 4;\n this.wasmModule._free(frameDataPtr);\n // TODO: Hook up WebGLTexture output, when given.\n // TODO: Allow user to toggle whether or not to render output into canvas.\n return undefined;\n }\n /**\n * Converts JavaScript string input parameters into C++ c-string pointers.\n * See b/204830158 for more details. Intended for internal usage.\n */\n wrapStringPtr(stringData, stringPtrFunc) {\n if (!this.hasMultiStreamSupport) {\n console.error('No wasm multistream support detected: ensure dependency ' +\n 'inclusion of :gl_graph_runner_internal_multi_input target');\n }\n const stringDataPtr = this.wasmModule.stringToNewUTF8(stringData);\n stringPtrFunc(stringDataPtr);\n this.wasmModule._free(stringDataPtr);\n }\n /**\n * Converts JavaScript string input parameters into C++ c-string pointers.\n * See b/204830158 for more details.\n */\n wrapStringPtrPtr(stringData, ptrFunc) {\n if (!this.hasMultiStreamSupport) {\n console.error('No wasm multistream support detected: ensure dependency ' +\n 'inclusion of :gl_graph_runner_internal_multi_input target');\n }\n const uint32Array = new Uint32Array(stringData.length);\n for (let i = 0; i < stringData.length; i++) {\n uint32Array[i] = this.wasmModule.stringToNewUTF8(stringData[i]);\n }\n const heapSpace = this.wasmModule._malloc(uint32Array.length * 4);\n this.wasmModule.HEAPU32.set(uint32Array, heapSpace >> 2);\n ptrFunc(heapSpace);\n for (const uint32ptr of uint32Array) {\n this.wasmModule._free(uint32ptr);\n }\n this.wasmModule._free(heapSpace);\n }\n /**\n * Invokes the callback with the current calculator configuration (in binary\n * format).\n *\n * Consumers must deserialize the binary representation themselves as this\n * avoids addding a direct dependency on the Protobuf JSPB target in the graph\n * library.\n */\n getCalculatorGraphConfig(callback, makeDeepCopy) {\n const listener = exports.CALCULATOR_GRAPH_CONFIG_LISTENER_NAME;\n // Create a short-lived listener to receive the binary encoded proto\n this.setListener(listener, (data) => {\n callback(data);\n });\n this.wrapStringPtr(listener, (outputStreamNamePtr) => {\n this.wasmModule._getGraphConfig(outputStreamNamePtr, makeDeepCopy);\n });\n delete this.wasmModule.simpleListeners[listener];\n }\n /**\n * Ensures existence of the simple listeners table and registers the callback.\n * Intended for internal usage.\n */\n setListener(outputStreamName, callbackFcn) {\n this.wasmModule.simpleListeners = this.wasmModule.simpleListeners || {};\n this.wasmModule.simpleListeners[outputStreamName] =\n callbackFcn;\n }\n /**\n * Ensures existence of the vector listeners table and registers the callback.\n * Intended for internal usage.\n */\n setVectorListener(outputStreamName, callbackFcn) {\n let buffer = [];\n this.wasmModule.simpleListeners = this.wasmModule.simpleListeners || {};\n this.wasmModule.simpleListeners[outputStreamName] =\n (data, done, timestamp) => {\n if (done) {\n callbackFcn(buffer, timestamp);\n buffer = [];\n }\n else {\n buffer.push(data);\n }\n };\n }\n /**\n * Attaches a listener that will be invoked when the MediaPipe framework\n * returns an error.\n */\n attachErrorListener(callbackFcn) {\n this.wasmModule.errorListener = callbackFcn;\n }\n /**\n * Attaches a listener that will be invoked when the MediaPipe framework\n * receives an empty packet on the provided output stream. This can be used\n * to receive the latest output timestamp.\n *\n * Empty packet listeners are only active if there is a corresponding packet\n * listener.\n *\n * @param outputStreamName The name of the graph output stream to receive\n * empty packets from.\n * @param callbackFcn The callback to receive the timestamp.\n */\n attachEmptyPacketListener(outputStreamName, callbackFcn) {\n this.wasmModule.emptyPacketListeners =\n this.wasmModule.emptyPacketListeners || {};\n this.wasmModule.emptyPacketListeners[outputStreamName] = callbackFcn;\n }\n /**\n * Takes the raw data from a JS audio capture array, and sends it to C++ to be\n * processed.\n * @param audioData An array of raw audio capture data, like\n * from a call to getChannelData on an AudioBuffer.\n * @param streamName The name of the MediaPipe graph stream to add the audio\n * data to.\n * @param timestamp The timestamp of the current frame, in ms.\n */\n addAudioToStream(audioData, streamName, timestamp) {\n // numChannels and numSamples being 0 will cause defaults to be used,\n // which will reflect values from last call to configureAudio.\n this.addAudioToStreamWithShape(audioData, 0, 0, streamName, timestamp);\n }\n /**\n * Takes the raw data from a JS audio capture array, and sends it to C++ to be\n * processed, shaping the audioData array into an audio matrix according to\n * the numChannels and numSamples parameters.\n * @param audioData An array of raw audio capture data, like\n * from a call to getChannelData on an AudioBuffer.\n * @param numChannels The number of audio channels this data represents. If 0\n * is passed, then the value will be taken from the last call to\n * configureAudio.\n * @param numSamples The number of audio samples captured in this data packet.\n * If 0 is passed, then the value will be taken from the last call to\n * configureAudio.\n * @param streamName The name of the MediaPipe graph stream to add the audio\n * data to.\n * @param timestamp The timestamp of the current frame, in ms.\n */\n addAudioToStreamWithShape(audioData, numChannels, numSamples, streamName, timestamp) {\n // 4 bytes for each F32\n const size = audioData.length * 4;\n if (this.audioSize !== size) {\n if (this.audioPtr) {\n this.wasmModule._free(this.audioPtr);\n }\n this.audioPtr = this.wasmModule._malloc(size);\n this.audioSize = size;\n }\n this.wasmModule.HEAPF32.set(audioData, this.audioPtr / 4);\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wasmModule._addAudioToInputStream(this.audioPtr, numChannels, numSamples, streamNamePtr, timestamp);\n });\n }\n /**\n * Takes the relevant information from the HTML video or image element, and\n * passes it into the WebGL-based graph for processing on the given stream at\n * the given timestamp. Can be used for additional auxiliary GpuBuffer input\n * streams. Processing will not occur until a blocking call (like\n * processVideoGl or finishProcessing) is made. For use with\n * 'gl_graph_runner_internal_multi_input'.\n * @param imageSource Reference to the video frame we wish to add into our\n * graph.\n * @param streamName The name of the MediaPipe graph stream to add the frame\n * to.\n * @param timestamp The timestamp of the input frame, in ms.\n */\n addGpuBufferToStream(imageSource, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n const [width, height] = this.bindTextureToStream(imageSource, streamNamePtr);\n this.wasmModule._addBoundTextureToStream(streamNamePtr, width, height, timestamp);\n });\n }\n /**\n * Sends a boolean packet into the specified stream at the given timestamp.\n * @param data The boolean data to send.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addBoolToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wasmModule._addBoolToInputStream(data, streamNamePtr, timestamp);\n });\n }\n /**\n * Sends a double packet into the specified stream at the given timestamp.\n * @param data The double data to send.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addDoubleToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wasmModule._addDoubleToInputStream(data, streamNamePtr, timestamp);\n });\n }\n /**\n * Sends a float packet into the specified stream at the given timestamp.\n * @param data The float data to send.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addFloatToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n // NOTE: _addFloatToStream and _addIntToStream are reserved for JS\n // Calculators currently; we may want to revisit this naming scheme in the\n // future.\n this.wasmModule._addFloatToInputStream(data, streamNamePtr, timestamp);\n });\n }\n /**\n * Sends an integer packet into the specified stream at the given timestamp.\n * @param data The integer data to send.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addIntToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wasmModule._addIntToInputStream(data, streamNamePtr, timestamp);\n });\n }\n /**\n * Sends a string packet into the specified stream at the given timestamp.\n * @param data The string data to send.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addStringToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wrapStringPtr(data, (dataPtr) => {\n this.wasmModule._addStringToInputStream(dataPtr, streamNamePtr, timestamp);\n });\n });\n }\n /**\n * Sends a Record<string, string> packet into the specified stream at the\n * given timestamp.\n * @param data The records to send (will become a\n * std::flat_hash_map<std::string, std::string).\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addStringRecordToStream(data, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wrapStringPtrPtr(Object.keys(data), (keyList) => {\n this.wrapStringPtrPtr(Object.values(data), (valueList) => {\n this.wasmModule._addFlatHashMapToInputStream(keyList, valueList, Object.keys(data).length, streamNamePtr, timestamp);\n });\n });\n });\n }\n /**\n * Sends a serialized protobuffer packet into the specified stream at the\n * given timestamp, to be parsed into the specified protobuffer type.\n * @param data The binary (serialized) raw protobuffer data.\n * @param protoType The C++ namespaced type this protobuffer data corresponds\n * to (e.g. \"foo.Bar\"). It will be converted to this type when output as a\n * packet into the graph.\n * @param streamName The name of the graph input stream to send data into.\n * @param timestamp The timestamp of the input data, in ms.\n */\n addProtoToStream(data, protoType, streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wrapStringPtr(protoType, (protoTypePtr) => {\n // Deep-copy proto data into Wasm heap\n const dataPtr = this.wasmModule._malloc(data.length);\n // TODO: Ensure this is the fastest way to copy this data.\n this.wasmModule.HEAPU8.set(data, dataPtr);\n this.wasmModule._addProtoToInputStream(dataPtr, data.length, protoTypePtr, streamNamePtr, timestamp);\n this.wasmModule._free(dataPtr);\n });\n });\n }\n /**\n * Sends an empty packet into the specified stream at the given timestamp,\n * effectively advancing that input stream's timestamp bounds without\n * sending additional data packets.\n * @param streamName The name of the graph input stream to send the empty\n * packet into.\n * @param timestamp The timestamp of the empty packet, in ms.\n */\n addEmptyPacketToStream(streamName, timestamp) {\n this.wrapStringPtr(streamName, (streamNamePtr) => {\n this.wasmModule._addEmptyPacketToInputStream(streamNamePtr, timestamp);\n });\n }\n /**\n * Attaches a boolean packet to the specified input_side_packet.\n * @param data The boolean data to send.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addBoolToInputSidePacket(data, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wasmModule._addBoolToInputSidePacket(data, sidePacketNamePtr);\n });\n }\n /**\n * Attaches a double packet to the specified input_side_packet.\n * @param data The double data to send.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addDoubleToInputSidePacket(data, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wasmModule._addDoubleToInputSidePacket(data, sidePacketNamePtr);\n });\n }\n /**\n * Attaches a float packet to the specified input_side_packet.\n * @param data The float data to send.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addFloatToInputSidePacket(data, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wasmModule._addFloatToInputSidePacket(data, sidePacketNamePtr);\n });\n }\n /**\n * Attaches a integer packet to the specified input_side_packet.\n * @param data The integer data to send.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addIntToInputSidePacket(data, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wasmModule._addIntToInputSidePacket(data, sidePacketNamePtr);\n });\n }\n /**\n * Attaches a string packet to the specified input_side_packet.\n * @param data The string data to send.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addStringToInputSidePacket(data, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wrapStringPtr(data, (dataPtr) => {\n this.wasmModule._addStringToInputSidePacket(dataPtr, sidePacketNamePtr);\n });\n });\n }\n /**\n * Attaches a serialized proto packet to the specified input_side_packet.\n * @param data The binary (serialized) raw protobuffer data.\n * @param protoType The C++ namespaced type this protobuffer data corresponds\n * to. It will be converted to this type for use in the graph.\n * @param sidePacketName The name of the graph input side packet to send data\n * into.\n */\n addProtoToInputSidePacket(data, protoType, sidePacketName) {\n this.wrapStringPtr(sidePacketName, (sidePacketNamePtr) => {\n this.wrapStringPtr(protoType, (protoTypePtr) => {\n // Deep-copy proto data into Wasm heap\n const dataPtr = this.wasmModule._malloc(data.length);\n // TODO: Ensure this is the fastest way to copy this data.\n this.wasmModule.HEAPU8.set(data, dataPtr);\n this.wasmModule._addProtoToInputSidePacket(dataPtr, data.length, protoTypePtr, sidePacketNamePtr);\n this.wasmModule._free(dataPtr);\n });\n });\n }\n /**\n * Attaches a boolean packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab boolean\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachBoolListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for bool packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachBoolListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a bool[] packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab\n * std::vector<bool> data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachBoolVectorListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for std::vector<bool> packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachBoolVectorListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches an int packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab int\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachIntListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for int packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachIntListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches an int[] packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab\n * std::vector<int> data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachIntVectorListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for std::vector<int> packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachIntVectorListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a double packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab double\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachDoubleListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for double packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachDoubleListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a double[] packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab\n * std::vector<double> data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachDoubleVectorListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for std::vector<double> packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachDoubleVectorListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a float packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab float\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachFloatListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for float packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachFloatListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a float[] packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab\n * std::vector<float> data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachFloatVectorListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for std::vector<float> packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachFloatVectorListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a string packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab string\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachStringListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for string packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachStringListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a string[] packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab\n * std::vector<std::string> data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior.\n */\n attachStringVectorListener(outputStreamName, callbackFcn) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for std::vector<string> packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachStringVectorListener(outputStreamNamePtr);\n });\n }\n /**\n * Attaches a serialized proto packet listener to the specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab binary\n * serialized proto data from (in Uint8Array format).\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that by default the data is only guaranteed to\n * exist for the duration of the callback, and the callback will be called\n * inline, so it should not perform overly complicated (or any async)\n * behavior. If the proto data needs to be able to outlive the call, you\n * may set the optional makeDeepCopy parameter to true, or can manually\n * deep-copy the data yourself.\n * @param makeDeepCopy Optional convenience parameter which, if set to true,\n * will override the default memory management behavior and make a deep\n * copy of the underlying data, rather than just returning a view into the\n * C++-managed memory. At the cost of a data copy, this allows the\n * returned data to outlive the callback lifetime (and it will be cleaned\n * up automatically by JS garbage collection whenever the user is finished\n * with it).\n */\n attachProtoListener(outputStreamName, callbackFcn, makeDeepCopy) {\n // Set up our TS listener to receive any packets for this stream.\n this.setListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for binary serialized proto data packets on this\n // stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachProtoListener(outputStreamNamePtr, makeDeepCopy || false);\n });\n }\n /**\n * Attaches a listener for an array of serialized proto packets to the\n * specified output_stream.\n * @param outputStreamName The name of the graph output stream to grab a\n * vector of binary serialized proto data from (in Uint8Array[] format).\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that by default the data is only guaranteed to\n * exist for the duration of the callback, and the callback will be called\n * inline, so it should not perform overly complicated (or any async)\n * behavior. If the proto data needs to be able to outlive the call, you\n * may set the optional makeDeepCopy parameter to true, or can manually\n * deep-copy the data yourself.\n * @param makeDeepCopy Optional convenience parameter which, if set to true,\n * will override the default memory management behavior and make a deep\n * copy of the underlying data, rather than just returning a view into the\n * C++-managed memory. At the cost of a data copy, this allows the\n * returned data to outlive the callback lifetime (and it will be cleaned\n * up automatically by JS garbage collection whenever the user is finished\n * with it).\n */\n attachProtoVectorListener(outputStreamName, callbackFcn, makeDeepCopy) {\n // Set up our TS listener to receive any packets for this stream.\n this.setVectorListener(outputStreamName, callbackFcn);\n // Tell our graph to listen for a vector of binary serialized proto packets\n // on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachProtoVectorListener(outputStreamNamePtr, makeDeepCopy || false);\n });\n }\n /**\n * Attaches an audio packet listener to the specified output_stream, to be\n * given a Float32Array as output.\n * @param outputStreamName The name of the graph output stream to grab audio\n * data from.\n * @param callbackFcn The function that will be called back with the data, as\n * it is received. Note that the data is only guaranteed to exist for the\n * duration of the callback, and the callback will be called inline, so it\n * should not perform overly complicated (or any async) behavior. If the\n * audio data needs to be able to outlive the call, you may set the\n * optional makeDeepCopy parameter to true, or can manually deep-copy the\n * data yourself.\n * @param makeDeepCopy Optional convenience parameter which, if set to true,\n * will override the default memory management behavior and make a deep\n * copy of the underlying data, rather than just returning a view into the\n * C++-managed memory. At the cost of a data copy, this allows the\n * returned data to outlive the callback lifetime (and it will be cleaned\n * up automatically by JS garbage collection whenever the user is finished\n * with it).\n */\n attachAudioListener(outputStreamName, callbackFcn, makeDeepCopy) {\n if (!this.wasmModule._attachAudioListener) {\n console.warn('Attempting to use attachAudioListener without support for ' +\n 'output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');\n }\n // Set up our TS listener to receive any packets for this stream, and\n // additionally reformat our Uint8Array into a Float32Array for the user.\n this.setListener(outputStreamName, (data, timestamp) => {\n // Should be very fast\n const floatArray = new Float32Array(data.buffer, data.byteOffset, data.length / 4);\n callbackFcn(floatArray, timestamp);\n });\n // Tell our graph to listen for string packets on this stream.\n this.wrapStringPtr(outputStreamName, (outputStreamNamePtr) => {\n this.wasmModule._attachAudioListener(outputStreamNamePtr, makeDeepCopy || false);\n });\n }\n /**\n * Forces all queued-up packets to be pushed through the MediaPipe graph as\n * far as possible, performing all processing until no more processing can be\n * done.\n */\n finishProcessing() {\n this.wasmModule._waitUntilIdle();\n }\n /**\n * Closes the input streams and all calculators for this graph and frees up\n * any C++ resources. The graph will not be usable once closed.\n */\n closeGraph() {\n this.wasmModule._closeGraph();\n this.wasmModule.simpleListeners = undefined;\n this.wasmModule.emptyPacketListeners = undefined;\n }\n}\nexports.GraphRunner = GraphRunner;\n// Quick private helper to run the given script safely\nasync function runScript(scriptUrl) {\n if (typeof importScripts === 'function') {\n importScripts(scriptUrl.toString());\n }\n else {\n const script = document.createElement('script');\n script.setAttribute('src', scriptUrl);\n script.setAttribute('crossorigin', 'anonymous');\n return new Promise((resolve) => {\n script.addEventListener('load', () => {\n resolve();\n }, false);\n script.addEventListener('error', () => {\n resolve();\n }, false);\n document.body.appendChild(script);\n });\n }\n}\n/**\n * Global function to initialize Wasm blob and load runtime assets for a\n * specialized MediaPipe library. This allows us to create a requested\n * subclass inheriting from GraphRunner.\n * @param constructorFcn The name of the class to instantiate via \"new\".\n * @param wasmLoaderScript Url for the wasm-runner script; produced by the build\n * process.\n * @param assetLoaderScript Url for the asset-loading script; produced by the\n * build process.\n * @param fileLocator A function to override the file locations for assets\n * loaded by the MediaPipe library.\n * @return promise A promise which will resolve when initialization has\n * completed successfully.\n */\nasync function createMediaPipeLib(constructorFcn, wasmLoaderScript, assetLoaderScript, glCanvas, fileLocator) {\n const scripts = [];\n // Run wasm-loader script here\n if (wasmLoaderScript) {\n scripts.push(wasmLoaderScript);\n }\n // Run asset-loader script here\n if (assetLoaderScript) {\n scripts.push(assetLoaderScript);\n }\n // Load scripts in parallel, browser will execute them in sequence.\n if (scripts.length) {\n await Promise.all(scripts.map(runScript));\n }\n if (!self.ModuleFactory) {\n throw new Error('ModuleFactory not set.');\n }\n // Until asset scripts work nicely with MODULARIZE, when we are given both\n // self.Module and a fileLocator, we manually merge them into self.Module and\n // use that. TODO: Remove this when asset scripts are fixed.\n if (self.Module && fileLocator) {\n const moduleFileLocator = self.Module;\n moduleFileLocator.locateFile = fileLocator.locateFile;\n if (fileLocator.mainScriptUrlOrBlob) {\n moduleFileLocator.mainScriptUrlOrBlob = fileLocator.mainScriptUrlOrBlob;\n }\n }\n // TODO: Ensure that fileLocator is passed in by all users\n // and make it required\n const module = await self.ModuleFactory(self.Module || fileLocator);\n // Don't reuse factory or module seed\n self.ModuleFactory = self.Module = undefined;\n return new constructorFcn(module, glCanvas);\n}\nexports.createMediaPipeLib = createMediaPipeLib;\n/**\n * Global function to initialize Wasm blob and load runtime assets for a generic\n * MediaPipe library.\n * @param wasmLoaderScript Url for the wasm-runner script; produced by the build\n * process.\n * @param assetLoaderScript Url for the asset-loading script; produced by the\n * build process.\n * @param fileLocator A function to override the file locations for assets\n * loaded by the MediaPipe library.\n * @return promise A promise which will resolve when initialization has\n * completed successfully.\n */\nasync function createGraphRunner(wasmLoaderScript, assetLoaderScript, glCanvas, fileLocator) {\n return createMediaPipeLib(GraphRunner, wasmLoaderScript, assetLoaderScript, glCanvas, fileLocator);\n}\nexports.createGraphRunner = createGraphRunner;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhfcnVubmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWFwaXBlL3dlYi9ncmFwaF9ydW5uZXIvZ3JhcGhfcnVubmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFzRDtBQUN0RCxrREFBa0Q7QUFDbEQsMEVBQStEO0FBMkMvRDs7O0dBR0c7QUFDVSxRQUFBLHFDQUFxQyxHQUFHLGtCQUFrQixDQUFDO0FBZ0p4RTs7Ozs7R0FLRztBQUNILE1BQWEsV0FBVztJQVV0Qjs7Ozs7Ozs7O09BU0c7SUFDSCxZQUNJLE1BQWtCLEVBQUUsUUFBaUQ7UUFmekUscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBZ0IvQixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQztRQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQztRQUNuQixJQUFJLENBQUMscUJBQXFCO1lBQ3RCLENBQUMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixLQUFLLFVBQVUsQ0FBQyxDQUFDO1FBRWpFLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUM7U0FDbkM7YUFBTSxJQUFJLE9BQU8sZUFBZSxLQUFLLFdBQVcsSUFBSSxDQUFDLElBQUEseUJBQVEsR0FBRSxFQUFFO1lBQ2hFLG1FQUFtRTtZQUNuRSxrRUFBa0U7WUFDbEUsNkRBQTZEO1lBQzdELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksZUFBZSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsT0FBTyxDQUFDLElBQUksQ0FDUiw0REFBNEQ7Z0JBQzVELDBEQUEwRCxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdB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QyxVQUFVLENBQUM7UUFDdEQsSUFBSSxXQUFXLENBQUMsbUJBQW1CLEVBQUU7WUFDbkMsaUJBQWlCLENBQUMsbUJBQW1CLEdBQUcsV0FBVyxDQUFDLG1CQUFtQixDQUFDO1NBQ3pFO0tBQ0Y7SUFDRCwwREFBMEQ7SUFDMUQsdUJBQXVCO0lBQ3ZCLE1BQU0sTUFBTSxHQUNSLE1BQU0sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBcUIsSUFBSSxXQUFXLENBQUMsQ0FBQztJQUN4RSxxQ0FBcUM7SUFDckMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztJQUM3QyxPQUFPLElBQUksY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBeENELGdEQXdDQztBQUVEOzs7Ozs7Ozs7OztHQVdHO0FBQ0ksS0FBSyxVQUFVLGlCQUFpQixDQUNuQyxnQkFBeUIsRUFDekIsaUJBQTBCLEVBQzFCLFFBQWlELEVBQ2pELFdBQXlCO0lBQzNCLE9BQU8sa0JBQWtCLENBQ3JCLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQzFELFdBQVcsQ0FBQyxDQUFDO0FBQ25CLENBQUM7QUFSRCw4Q0FRQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIFBsYWNlaG9sZGVyIGZvciBpbnRlcm5hbCBkZXBlbmRlbmN5IG9uIGFzc2VydFRydXRoeVxuLy8gUGxhY2Vob2xkZXIgZm9yIGludGVybmFsIGRlcGVuZGVuY3kgb24ganNsb2FkZXJcbmltcG9ydCB7aXNXZWJLaXR9IGZyb20gJy4uLy4uL3dlYi9ncmFwaF9ydW5uZXIvcGxhdGZvcm1fdXRpbHMnO1xuLy8gUGxhY2Vob2xkZXIgZm9yIGludGVybmFsIGRlcGVuZGVuY3kgb24gdHJ1c3RlZCByZXNvdXJjZSB1cmxcblxuLy8gVGhpcyBmaWxlIGNhbiBzZXJ2ZSBhcyBhIGNvbW1vbiBpbnRlcmZhY2UgZm9yIG1vc3Qgc2ltcGxlIFR5cGVTY3JpcHRcbi8vIGxpYnJhcmllcy0tIGFkZGl0aW9uYWxseSwgaXQgY2FuIGhvb2sgYXV0b21hdGljYWxseSBpbnRvIHdhc21fbWVkaWFwaXBlX2RlbW9cbi8vIHRvIGF1dG9nZW5lcmF0ZSBzaW1wbGUgVFMgQVBJcyBmcm9tIGRlbW9zIGZvciBpbnN0YW50YW5lb3VzIDFQIGludGVncmF0aW9ucy5cblxuLyoqXG4gKiBTaW1wbGUgaW50ZXJmYWNlIGZvciBhbGxvd2luZyB1c2VycyB0byBzZXQgdGhlIGRpcmVjdG9yeSB3aGVyZSBpbnRlcm5hbFxuICogd2FzbS1sb2FkaW5nIGFuZCBhc3NldC1sb2FkaW5nIGNvZGUgbG9va3MgKGUuZy4gZm9yIC53YXNtIGFuZCAuZGF0YSBmaWxlXG4gKiBsb2NhdGlvbnMpLlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgRmlsZUxvY2F0b3Ige1xuICBsb2NhdGVGaWxlOiAoZmlsZW5hbWU6IHN0cmluZykgPT4gc3RyaW5nO1xuICBtYWluU2NyaXB0VXJsT3JCbG9iPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgbGlzdGVuZXIgdGhhdCByZWNlaXZlcyB0aGUgY29udGVudHMgb2YgYSBub24tZW1wdHkgTWVkaWFQaXBlIHBhY2tldCBhbmRcbiAqIGl0cyB0aW1lc3RhbXAuXG4gKi9cbmV4cG9ydCB0eXBlIFNpbXBsZUxpc3RlbmVyPFQ+ID0gKGRhdGE6IFQsIHRpbWVzdGFtcDogbnVtYmVyKSA9PiB2b2lkO1xuXG4vKipcbiAqIEEgbGlzdGVuZXIgdGhhdCByZWNlaXZlcyB0aGUgY3VycmVudCBNZWRpYVBpcGUgcGFja2V0IHRpbWVzdGFtcC4gVGhpcyBpc1xuICogaW52b2tlZCBldmVuIGZvciBlbXB0eSBwYWNrZXQuXG4gKi9cbmV4cG9ydCB0eXBlIEVtcHR5UGFja2V0TGlzdGVuZXIgPSAodGltZXN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG5cbi8qKlxuICogQSBsaXN0ZW5lciB0aGF0IHJlY2VpdmVzIGEgc2luZ2xlIGVsZW1lbnQgb2YgdmVjdG9yLXJldHVybmluZyBvdXRwdXQgcGFja2V0LlxuICogUmVjZWl2ZXMgb25lIGVsZW1lbnQgYXQgYSB0aW1lIChpbiBvcmRlcikuIE9uY2UgYWxsIGVsZW1lbnRzIGFyZSBwcm9jZXNzZWQsXG4gKiB0aGUgbGlzdGVuZXIgaXMgaW52b2tlZCB3aXRoIGBkYXRhYCBzZXQgdG8gYHVua25vd25gIGFuZCBgZG9uZWAgc2V0IHRvIHRydWUuXG4gKiBJbnRlbmRlZCBmb3IgaW50ZXJuYWwgdXNhZ2UuXG4gKi9cbmV4cG9ydCB0eXBlIFZlY3Rvckxpc3RlbmVyPFQ+ID0gKGRhdGE6IFQsIGRvbmU6IGJvb2xlYW4sIHRpbWVzdGFtcDogbnVtYmVyKSA9PlxuICAgIHZvaWQ7XG5cbi8qKlxuICogQSBsaXN0ZW5lciB0aGF0IHJlY2VpdmVzIHRoZSBDYWxjdWxhdG9yR3JhcGhDb25maWcgaW4gYmluYXJ5IGVuY29kaW5nLlxuICovXG5leHBvcnQgdHlwZSBDYWxjdWxhdG9yR3JhcGhDb25maWdMaXN0ZW5lciA9IChncmFwaENvbmZpZzogVWludDhBcnJheSkgPT4gdm9pZDtcblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgaW50ZXJuYWwgbGlzdGVuZXIgdGhhdCB3ZSB1c2UgdG8gb2J0YWluIHRoZSBjYWxjdWxhdG9yIGdyYXBoXG4gKiBjb25maWcuIEludGVuZGVkIGZvciBpbnRlcm5hbCB1c2FnZS4gRXhwb3J0ZWQgZm9yIHRlc3Rpbmcgb25seS5cbiAqL1xuZXhwb3J0IGNvbnN0IENBTENVTEFUT1JfR1JBUEhfQ09ORklHX0xJU1RFTkVSX05BTUUgPSAnX19ncmFwaF9jb25maWdfXyc7XG5cbi8qKlxuICogRGVjbGFyYXRpb25zIGZvciBFbXNjcmlwdGVuJ3MgV2ViQXNzZW1ibHkgTW9kdWxlIGJlaGF2aW9yLCBzbyBUUyBjb21waWxlclxuICogZG9lc24ndCBicmVhayBvdXIgSlMvQysrIGJyaWRnZS5cbiAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIFdhc21Nb2R1bGUge1xuICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsO1xuICBIRUFQVTg6IFVpbnQ4QXJyYXk7XG4gIEhFQVBVMzI6IFVpbnQzMkFycmF5O1xuICBIRUFQRjMyOiBGbG9hdDMyQXJyYXk7XG4gIEhFQVBGNjQ6IEZsb2F0NjRBcnJheTtcbiAgRlNfY3JlYXRlRGF0YUZpbGU6XG4gICAgICAocGFyZW50OiBzdHJpbmcsIG5hbWU6IHN0cmluZywgZGF0YTogVWludDhBcnJheSwgY2FuUmVhZDogYm9vbGVhbixcbiAgICAgICBjYW5Xcml0ZTogYm9vbGVhbiwgY2FuT3duOiBib29sZWFuKSA9PiB2b2lkO1xuICBGU19jcmVhdGVQYXRoOlxuICAgICAgKHBhcmVudDogc3RyaW5nLCBuYW1lOiBzdHJpbmcsIGNhblJlYWQ6IGJvb2xlYW4sXG4gICAgICAgY2FuV3JpdGU6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIEZTX3VubGluayhwYXRoOiBzdHJpbmcpOiB2b2lkO1xuXG4gIGVycm9yTGlzdGVuZXI/OiBFcnJvckxpc3RlbmVyO1xuICBfYmluZFRleHR1cmVUb0NhbnZhczogKCkgPT4gYm9vbGVhbjtcbiAgX2NoYW5nZUJpbmFyeUdyYXBoOiAoc2l6ZTogbnVtYmVyLCBkYXRhUHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9jaGFuZ2VUZXh0R3JhcGg6IChzaXplOiBudW1iZXIsIGRhdGFQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2Nsb3NlR3JhcGg6ICgpID0+IHZvaWQ7XG4gIF9mcmVlOiAocHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9tYWxsb2M6IChzaXplOiBudW1iZXIpID0+IG51bWJlcjtcbiAgX3Byb2Nlc3NGcmFtZTogKHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbiAgX3NldEF1dG9SZW5kZXJUb1NjcmVlbjogKGVuYWJsZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG4gIF93YWl0VW50aWxJZGxlOiAoKSA9PiB2b2lkO1xuXG4gIC8vIEV4cG9zZWQgc28gdGhhdCBjbGllbnRzIG9mIHRoaXMgbGliIGNhbiBhY2Nlc3MgdGhpcyBmaWVsZFxuICBkYXRhRmlsZURvd25sb2Fkcz86IHtbdXJsOiBzdHJpbmddOiB7bG9hZGVkOiBudW1iZXIsIHRvdGFsOiBudW1iZXJ9fTtcblxuICAvLyBXYXNtIE1vZHVsZSBtdWx0aXN0cmVhbSBlbnRyeXBvaW50cy4gIFJlcXVpcmVcbiAgLy8gZ2xfZ3JhcGhfcnVubmVyX2ludGVybmFsX211bHRpX2lucHV0IGFzIGEgYnVpbGQgZGVwZW5kZW5jeS5cbiAgc3RyaW5nVG9OZXdVVEY4OiAoZGF0YTogc3RyaW5nKSA9PiBudW1iZXI7XG4gIF9iaW5kVGV4dHVyZVRvU3RyZWFtOiAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYWRkQm91bmRUZXh0dXJlVG9TdHJlYW06XG4gICAgICAoc3RyZWFtTmFtZVB0cjogbnVtYmVyLCB3aWR0aDogbnVtYmVyLCBoZWlnaHQ6IG51bWJlcixcbiAgICAgICB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZEJvb2xUb0lucHV0U3RyZWFtOlxuICAgICAgKGRhdGE6IGJvb2xlYW4sIHN0cmVhbU5hbWVQdHI6IG51bWJlciwgdGltZXN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hZGREb3VibGVUb0lucHV0U3RyZWFtOlxuICAgICAgKGRhdGE6IG51bWJlciwgc3RyZWFtTmFtZVB0cjogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZEZsb2F0VG9JbnB1dFN0cmVhbTpcbiAgICAgIChkYXRhOiBudW1iZXIsIHN0cmVhbU5hbWVQdHI6IG51bWJlciwgdGltZXN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hZGRJbnRUb0lucHV0U3RyZWFtOlxuICAgICAgKGRhdGE6IG51bWJlciwgc3RyZWFtTmFtZVB0cjogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZFN0cmluZ1RvSW5wdXRTdHJlYW06XG4gICAgICAoZGF0YVB0cjogbnVtYmVyLCBzdHJlYW1OYW1lUHRyOiBudW1iZXIsIHRpbWVzdGFtcDogbnVtYmVyKSA9PiB2b2lkO1xuICBfYWRkRmxhdEhhc2hNYXBUb0lucHV0U3RyZWFtOlxuICAgICAgKGtleXNQdHI6IG51bWJlciwgdmFsdWVzUHRyOiBudW1iZXIsIGNvdW50OiBudW1iZXIsIHN0cmVhbU5hbWVQdHI6IG51bWJlcixcbiAgICAgICB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZFByb3RvVG9JbnB1dFN0cmVhbTpcbiAgICAgIChkYXRhUHRyOiBudW1iZXIsIGRhdGFTaXplOiBudW1iZXIsIHByb3RvTmFtZVB0cjogbnVtYmVyLFxuICAgICAgIHN0cmVhbU5hbWVQdHI6IG51bWJlciwgdGltZXN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hZGRFbXB0eVBhY2tldFRvSW5wdXRTdHJlYW06XG4gICAgICAoc3RyZWFtTmFtZVB0cjogbnVtYmVyLCB0aW1lc3RhbXA6IG51bWJlcikgPT4gdm9pZDtcblxuICAvLyBJbnB1dCBzaWRlIHBhY2tldHNcbiAgX2FkZEJvb2xUb0lucHV0U2lkZVBhY2tldDogKGRhdGE6IGJvb2xlYW4sIHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZERvdWJsZVRvSW5wdXRTaWRlUGFja2V0OiAoZGF0YTogbnVtYmVyLCBzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hZGRGbG9hdFRvSW5wdXRTaWRlUGFja2V0OiAoZGF0YTogbnVtYmVyLCBzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hZGRJbnRUb0lucHV0U2lkZVBhY2tldDogKGRhdGE6IG51bWJlciwgc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYWRkU3RyaW5nVG9JbnB1dFNpZGVQYWNrZXQ6IChkYXRhUHRyOiBudW1iZXIsIHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2FkZFByb3RvVG9JbnB1dFNpZGVQYWNrZXQ6XG4gICAgICAoZGF0YVB0cjogbnVtYmVyLCBkYXRhU2l6ZTogbnVtYmVyLCBwcm90b05hbWVQdHI6IG51bWJlcixcbiAgICAgICBzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgLy8gTWFwIG9mIG91dHB1dCBzdHJlYW1zIHRvIHBhY2tldCBsaXN0ZW5lcnMuICBBbHNvIGJ1aWx0IGFzIHBhcnQgb2ZcbiAgLy8gZ2xfZ3JhcGhfcnVubmVyX2ludGVybmFsX211bHRpX2lucHV0LlxuICBzaW1wbGVMaXN0ZW5lcnM/OlxuICAgICAgUmVjb3JkPHN0cmluZywgU2ltcGxlTGlzdGVuZXI8dW5rbm93bj58VmVjdG9yTGlzdGVuZXI8dW5rbm93bj4+O1xuICAvLyBNYXAgb2Ygb3V0cHV0IHN0cmVhbXMgdG8gZW1wdHkgcGFja2V0IGxpc3RlbmVycy5cbiAgZW1wdHlQYWNrZXRMaXN0ZW5lcnM/OiBSZWNvcmQ8c3RyaW5nLCBFbXB0eVBhY2tldExpc3RlbmVyPjtcbiAgX2F0dGFjaEJvb2xMaXN0ZW5lcjogKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2F0dGFjaEJvb2xWZWN0b3JMaXN0ZW5lcjogKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2F0dGFjaERvdWJsZUxpc3RlbmVyOiAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYXR0YWNoRG91YmxlVmVjdG9yTGlzdGVuZXI6IChzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hdHRhY2hGbG9hdExpc3RlbmVyOiAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYXR0YWNoRmxvYXRWZWN0b3JMaXN0ZW5lcjogKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2F0dGFjaEludExpc3RlbmVyOiAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYXR0YWNoSW50VmVjdG9yTGlzdGVuZXI6IChzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9hdHRhY2hTdHJpbmdMaXN0ZW5lcjogKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4gdm9pZDtcbiAgX2F0dGFjaFN0cmluZ1ZlY3Rvckxpc3RlbmVyOiAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB2b2lkO1xuICBfYXR0YWNoUHJvdG9MaXN0ZW5lcjogKHN0cmVhbU5hbWVQdHI6IG51bWJlciwgbWFrZURlZXBDb3B5PzogYm9vbGVhbikgPT4gdm9pZDtcbiAgX2F0dGFjaFByb3RvVmVjdG9yTGlzdGVuZXI6XG4gICAgICAoc3RyZWFtTmFtZVB0cjogbnVtYmVyLCBtYWtlRGVlcENvcHk/OiBib29sZWFuKSA9PiB2b2lkO1xuXG4gIC8vIFJlcXVpcmUgZGVwZW5kZW5jeSBcIjpnbF9ncmFwaF9ydW5uZXJfYXVkaW9fb3V0XCJcbiAgX2F0dGFjaEF1ZGlvTGlzdGVuZXI6IChzdHJlYW1OYW1lUHRyOiBudW1iZXIsIG1ha2VEZWVwQ29weT86IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gUmVxdWlyZSBkZXBlbmRlbmN5IFwiOmdsX2dyYXBoX3J1bm5lcl9hdWRpb1wiXG4gIF9hZGRBdWRpb1RvSW5wdXRTdHJlYW06IChkYXRhUHRyOiBudW1iZXIsIG51bUNoYW5uZWxzOiBudW1iZXIsXG4gICAgICBudW1TYW1wbGVzOiBudW1iZXIsIHN0cmVhbU5hbWVQdHI6IG51bWJlciwgdGltZXN0YW1wOiBudW1iZXIpID0+IHZvaWQ7XG4gIF9jb25maWd1cmVBdWRpbzogKGNoYW5uZWxzOiBudW1iZXIsIHNhbXBsZXM6IG51bWJlciwgc2FtcGxlUmF0ZTogbnVtYmVyLFxuICAgICAgc3RyZWFtTmFtZVB0cjogbnVtYmVyLCBoZWFkZXJOYW1lUHRyOiBudW1iZXIpID0+IHZvaWQ7XG5cbiAgLy8gR2V0IHRoZSBncmFwaCBjb25maWd1cmF0aW9uIGFuZCBpbnZva2UgdGhlIGxpc3RlbmVyIGNvbmZpZ3VyZWQgdW5kZXJcbiAgLy8gc3RyZWFtTmFtZVB0clxuICBfZ2V0R3JhcGhDb25maWc6IChzdHJlYW1OYW1lUHRyOiBudW1iZXIsIG1ha2VEZWVwQ29weT86IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgLy8gVE9ETzogUmVmYWN0b3IgdG8ganVzdCB1c2UgYSBmZXcgbnVtYmVycyAocGVyaGFwcyByZWZhY3RvciBhd2F5XG4gIC8vICAgZnJvbSBnbF9ncmFwaF9ydW5uZXJfaW50ZXJuYWwuY2MgZW50aXJlbHkgdG8gdXNlIHNvbWV0aGluZyBhIGxpdHRsZSBtb3JlXG4gIC8vICAgc3RyZWFtbGluZWQ7IG5ldyB2ZXJzaW9uIGlzIF9wcm9jZXNzRnJhbWUgYWJvdmUpLlxuICBfcHJvY2Vzc0dsOiAoZnJhbWVEYXRhUHRyOiBudW1iZXIpID0+IG51bWJlcjtcbn1cblxuLy8gR2xvYmFsIGRlY2xhcmF0aW9ucywgZm9yIHRhcHBpbmcgaW50byBXaW5kb3cgZm9yIFdhc20gYmxvYiBydW5uaW5nXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8vIENyZWF0ZWQgYnkgdXMgdXNpbmcgd2FzbS1ydW5uZXIgc2NyaXB0XG4gICAgTW9kdWxlPzogV2FzbU1vZHVsZXxGaWxlTG9jYXRvcjtcbiAgICAvLyBDcmVhdGVkIGJ5IHdhc20tcnVubmVyIHNjcmlwdFxuICAgIE1vZHVsZUZhY3Rvcnk/OiAoZmlsZUxvY2F0b3I6IEZpbGVMb2NhdG9yKSA9PiBQcm9taXNlPFdhc21Nb2R1bGU+O1xuICB9XG59XG5cbi8qKlxuICogRmV0Y2hlcyBlYWNoIFVSTCBpbiB1cmxzLCBleGVjdXRlcyB0aGVtIG9uZS1ieS1vbmUgaW4gdGhlIG9yZGVyIHRoZXkgYXJlXG4gKiBwYXNzZWQsIGFuZCB0aGVuIHJldHVybnMgKG9yIHRocm93cyBpZiBzb21ldGhpbmcgd2VudCBhbWlzcykuXG4gKi9cbmRlY2xhcmUgZnVuY3Rpb24gaW1wb3J0U2NyaXB0cyguLi51cmxzOiBBcnJheTxzdHJpbmd8VVJMPik6IHZvaWQ7XG5cbi8qKlxuICogVmFsaWQgdHlwZXMgb2YgaW1hZ2Ugc291cmNlcyB3aGljaCB3ZSBjYW4gcnVuIG91ciBHcmFwaFJ1bm5lciBvdmVyLlxuICovXG5leHBvcnQgdHlwZSBJbWFnZVNvdXJjZSA9XG4gICAgSFRNTENhbnZhc0VsZW1lbnR8SFRNTFZpZGVvRWxlbWVudHxIVE1MSW1hZ2VFbGVtZW50fEltYWdlRGF0YXxJbWFnZUJpdG1hcDtcblxuXG4vKiogQSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aXRoIGFuIGFic2w6OlN0YXR1c0NvZGUgYW5kIG1lc3NhZ2UuICovXG5leHBvcnQgdHlwZSBFcnJvckxpc3RlbmVyID0gKGNvZGU6IG51bWJlciwgbWVzc2FnZTogc3RyaW5nKSA9PiB2b2lkO1xuXG4vKipcbiAqIEludGVybmFsIHR5cGUgb2YgY29uc3RydWN0b3JzIHVzZWQgZm9yIGluaXRpYWxpemluZyBHcmFwaFJ1bm5lciBhbmRcbiAqIHN1YmNsYXNzZXMuXG4gKi9cbmV4cG9ydCB0eXBlIFdhc21NZWRpYVBpcGVDb25zdHJ1Y3RvcjxMaWJUeXBlPiA9XG4gICAgKG5ldyAoXG4gICAgICAgICBtb2R1bGU6IFdhc21Nb2R1bGUsIGNhbnZhcz86IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsKSA9PlxuICAgICAgICAgTGliVHlwZSk7XG5cbi8qKlxuICogU2ltcGxlIGNsYXNzIHRvIHJ1biBhbiBhcmJpdHJhcnkgaW1hZ2UtaW4vaW1hZ2Utb3V0IE1lZGlhUGlwZSBncmFwaCAoaS5lLlxuICogYXMgY3JlYXRlZCBieSB3YXNtX21lZGlhcGlwZV9kZW1vIEJVSUxEIG1hY3JvKSwgYW5kIGVpdGhlciByZW5kZXIgcmVzdWx0c1xuICogaW50byBjYW52YXMsIG9yIGVsc2UgcmV0dXJuIHRoZSBvdXRwdXQgV2ViR0xUZXh0dXJlLiBUYWtlcyBhIFdlYkFzc2VtYmx5XG4gKiBNb2R1bGUuXG4gKi9cbmV4cG9ydCBjbGFzcyBHcmFwaFJ1bm5lciB7XG4gIC8vIFRPRE86IFRoZXNlIHNob3VsZCBiZSBwcm90ZWN0ZWQvcHJpdmF0ZSwgYnV0IGFyZSBsZWZ0IGV4cG9zZWQgZm9yXG4gIC8vICAgbm93IHNvIHRoYXQgd2UgY2FuIHVzZSBwcm9wZXIgVFMgbWl4aW5zIHdpdGggdGhpcyBjbGFzcyBhcyBhIGJhc2UuIFRoaXNcbiAgLy8gICBzaG91bGQgYmUgc29tZXdoYXQgZml4ZWQgd2hlbiB3ZSBjcmVhdGUgb3VyIC5kLnRzIGZpbGVzLlxuICByZWFkb25seSB3YXNtTW9kdWxlOiBXYXNtTW9kdWxlO1xuICByZWFkb25seSBoYXNNdWx0aVN0cmVhbVN1cHBvcnQ6IGJvb2xlYW47XG4gIGF1dG9SZXNpemVDYW52YXM6IGJvb2xlYW4gPSB0cnVlO1xuICBhdWRpb1B0cjogbnVtYmVyfG51bGw7XG4gIGF1ZGlvU2l6ZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IE1lZGlhUGlwZSBXQVNNIG1vZHVsZS4gTXVzdCBiZSBjYWxsZWQgKmFmdGVyKiB3YXNtIE1vZHVsZSBoYXNcbiAgICogaW5pdGlhbGl6ZWQuIE5vdGUgdGhhdCB3ZSB0YWtlIGNvbnRyb2wgb2YgdGhlIEdMIGNhbnZhcyBmcm9tIGhlcmUgb24gb3V0LFxuICAgKiBhbmQgd2lsbCByZXNpemUgaXQgdG8gZml0IGlucHV0LlxuICAgKlxuICAgKiBAcGFyYW0gbW9kdWxlIFRoZSB1bmRlcmx5aW5nIFdhc20gTW9kdWxlIHRvIHVzZS5cbiAgICogQHBhcmFtIGdsQ2FudmFzIFRoZSB0eXBlIG9mIHRoZSBHTCBjYW52YXMgdG8gdXNlLCBvciBgbnVsbGAgaWYgbm8gR0xcbiAgICogICAgY2FudmFzIHNob3VsZCBiZSBpbml0aWFsemVkLiBJbml0aWFsaXplcyBhbiBvZmZzY3JlZW4gY2FudmFzIGlmIG5vdFxuICAgKiAgICBwcm92aWRlZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgbW9kdWxlOiBXYXNtTW9kdWxlLCBnbENhbnZhcz86IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsKSB7XG4gICAgdGhpcy53YXNtTW9kdWxlID0gbW9kdWxlO1xuICAgIHRoaXMuYXVkaW9QdHIgPSBudWxsO1xuICAgIHRoaXMuYXVkaW9TaXplID0gMDtcbiAgICB0aGlzLmhhc011bHRpU3RyZWFtU3VwcG9ydCA9XG4gICAgICAgICh0eXBlb2YgdGhpcy53YXNtTW9kdWxlLl9hZGRJbnRUb0lucHV0U3RyZWFtID09PSAnZnVuY3Rpb24nKTtcblxuICAgIGlmIChnbENhbnZhcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuY2FudmFzID0gZ2xDYW52YXM7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzICE9PSAndW5kZWZpbmVkJyAmJiAhaXNXZWJLaXQoKSkge1xuICAgICAgLy8gSWYgbm8gY2FudmFzIGlzIHByb3ZpZGVkLCBhc3N1bWUgQ2hyb21lL0ZpcmVmb3ggYW5kIGp1c3QgbWFrZSBhblxuICAgICAgLy8gT2Zmc2NyZWVuQ2FudmFzIGZvciBHUFUgcHJvY2Vzc2luZy4gTm90ZSB0aGF0IHdlIGV4Y2x1ZGUgU2FmYXJpXG4gICAgICAvLyBzaW5jZSBpdCBkb2VzIG5vdCAoeWV0KSBzdXBwb3J0IFdlYkdMIGZvciBPZmZzY3JlZW5DYW52YXMuXG4gICAgICB0aGlzLndhc21Nb2R1bGUuY2FudmFzID0gbmV3IE9mZnNjcmVlbkNhbnZhcygxLCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICdPZmZzY3JlZW5DYW52YXMgbm90IHN1cHBvcnRlZCBhbmQgR3JhcGhSdW5uZXIgY29uc3RydWN0b3IgJyArXG4gICAgICAgICAgJ2dsQ2FudmFzIHBhcmFtZXRlciBpcyB1bmRlZmluZWQuIENyZWF0aW5nIGJhY2t1cCBjYW52YXMuJyk7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIGhlbHBlciB0byBsb2FkIGEgTWVkaWFQaXBlIGdyYXBoIGZyb20gYSBmaWxlIGFuZCBwYXNzIGl0IHRvXG4gICAqIHNldEdyYXBoLlxuICAgKiBAcGFyYW0gZ3JhcGhGaWxlIFRoZSB1cmwgb2YgdGhlIE1lZGlhUGlwZSBncmFwaCBmaWxlIHRvIGxvYWQuXG4gICAqL1xuICBhc3luYyBpbml0aWFsaXplR3JhcGgoZ3JhcGhGaWxlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAvLyBGZXRjaCBhbmQgc2V0IGdyYXBoXG4gICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCBmZXRjaChncmFwaEZpbGUpO1xuICAgIGNvbnN0IGdyYXBoRGF0YSA9IGF3YWl0IHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7XG4gICAgY29uc3QgaXNCaW5hcnkgPVxuICAgICAgICAhKGdyYXBoRmlsZS5lbmRzV2l0aCgnLnBidHh0JykgfHwgZ3JhcGhGaWxlLmVuZHNXaXRoKCcudGV4dHByb3RvJykpO1xuICAgIHRoaXMuc2V0R3JhcGgobmV3IFVpbnQ4QXJyYXkoZ3JhcGhEYXRhKSwgaXNCaW5hcnkpO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlbmllbmNlIGhlbHBlciBmb3IgY2FsbGluZyBzZXRHcmFwaCB3aXRoIGEgc3RyaW5nIHJlcHJlc2VudGluZyBhIHRleHRcbiAgICogcHJvdG8gY29uZmlnLlxuICAgKiBAcGFyYW0gZ3JhcGhDb25maWcgVGhlIHRleHQgcHJvdG8gZ3JhcGggY29uZmlnLCBleHBlY3RlZCB0byBiZSBhIHN0cmluZyBpblxuICAgKiBkZWZhdWx0IEphdmFTY3JpcHQgVVRGLTE2IGZvcm1hdC5cbiAgICovXG4gIHNldEdyYXBoRnJvbVN0cmluZyhncmFwaENvbmZpZzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zZXRHcmFwaCgobmV3IFRleHRFbmNvZGVyKCkpLmVuY29kZShncmFwaENvbmZpZyksIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyB0aGUgcmF3IGRhdGEgZnJvbSBhIE1lZGlhUGlwZSBncmFwaCwgYW5kIHBhc3NlcyBpdCB0byBDKysgdG8gYmUgcnVuXG4gICAqIG92ZXIgdGhlIHZpZGVvIHN0cmVhbS4gV2lsbCByZXBsYWNlIHRoZSBwcmV2aW91c2x5IHJ1bm5pbmcgTWVkaWFQaXBlIGdyYXBoLFxuICAgKiBpZiB0aGVyZSBpcyBvbmUuXG4gICAqIEBwYXJhbSBncmFwaERhdGEgVGhlIHJhdyBNZWRpYVBpcGUgZ3JhcGggZGF0YSwgZWl0aGVyIGluIGJpbmFyeVxuICAgKiAgICAgcHJvdG9idWZmZXIgZm9ybWF0ICguYmluYXJ5cGIpLCBvciBlbHNlIGluIHJhdyB0ZXh0IGZvcm1hdCAoLnBidHh0IG9yXG4gICAqICAgICAudGV4dHByb3RvKS5cbiAgICogQHBhcmFtIGlzQmluYXJ5IFRoaXMgc2hvdWxkIGJlIHNldCB0byB0cnVlIGlmIHRoZSBncmFwaCBpcyBpblxuICAgKiAgICAgYmluYXJ5IGZvcm1hdCwgYW5kIGZhbHNlIGlmIGl0IGlzIGluIGh1bWFuLXJlYWRhYmxlIHRleHQgZm9ybWF0LlxuICAgKi9cbiAgc2V0R3JhcGgoZ3JhcGhEYXRhOiBVaW50OEFycmF5LCBpc0JpbmFyeTogYm9vbGVhbik6IHZvaWQge1xuICAgIGNvbnN0IHNpemUgPSBncmFwaERhdGEubGVuZ3RoO1xuICAgIGNvbnN0IGRhdGFQdHIgPSB0aGlzLndhc21Nb2R1bGUuX21hbGxvYyhzaXplKTtcbiAgICB0aGlzLndhc21Nb2R1bGUuSEVBUFU4LnNldChncmFwaERhdGEsIGRhdGFQdHIpO1xuICAgIGlmIChpc0JpbmFyeSkge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9jaGFuZ2VCaW5hcnlHcmFwaChzaXplLCBkYXRhUHRyKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9jaGFuZ2VUZXh0R3JhcGgoc2l6ZSwgZGF0YVB0cik7XG4gICAgfVxuICAgIHRoaXMud2FzbU1vZHVsZS5fZnJlZShkYXRhUHRyKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBjdXJyZW50IGdyYXBoIHRvIGhhbmRsZSBhdWRpbyBwcm9jZXNzaW5nIGluIGEgY2VydGFpbiB3YXlcbiAgICogZm9yIGFsbCBpdHMgYXVkaW8gaW5wdXQgc3RyZWFtcy4gQWRkaXRpb25hbGx5IGNhbiBjb25maWd1cmUgYXVkaW8gaGVhZGVyc1xuICAgKiAoYm90aCBpbnB1dCBzaWRlIHBhY2tldHMgYXMgd2VsbCBhcyBpbnB1dCBzdHJlYW0gaGVhZGVycyksIGJ1dCB0aGVzZVxuICAgKiBjb25maWd1cmF0aW9ucyBvbmx5IHRha2UgZWZmZWN0IGlmIGNhbGxlZCBiZWZvcmUgdGhlIGdyYXBoIGlzIHNldC9zdGFydGVkLlxuICAgKiBAcGFyYW0gbnVtQ2hhbm5lbHMgVGhlIG51bWJlciBvZiBjaGFubmVscyBvZiBhdWRpbyBpbnB1dC4gT25seSAxXG4gICAqICAgICBpcyBzdXBwb3J0ZWQgZm9yIG5vdy5cbiAgICogQHBhcmFtIG51bVNhbXBsZXMgVGhlIG51bWJlciBvZiBzYW1wbGVzIHRoYXQgYXJlIHRha2VuIGluIGVhY2hcbiAgICogICAgIGF1ZGlvIGNhcHR1cmUuXG4gICAqIEBwYXJhbSBzYW1wbGVSYXRlIFRoZSByYXRlLCBpbiBIeiwgb2YgdGhlIHNhbXBsaW5nLlxuICAgKiBAcGFyYW0gc3RyZWFtTmFtZSBUaGUgb3B0aW9uYWwgbmFtZSBvZiB0aGUgaW5wdXQgc3RyZWFtIHRvIGFkZGl0aW9uYWxseVxuICAgKiAgICAgY29uZmlndXJlIHdpdGggYXVkaW8gaW5mb3JtYXRpb24uIFRoaXMgY29uZmlndXJhdGlvbiBvbmx5IG9jY3VycyBiZWZvcmVcbiAgICogICAgIHRoZSBncmFwaCBpcyBzZXQvc3RhcnRlZC4gSWYgdW5zZXQsIGEgZGVmYXVsdCBzdHJlYW0gbmFtZSB3aWxsIGJlIHVzZWQuXG4gICAqIEBwYXJhbSBoZWFkZXJOYW1lIFRoZSBvcHRpb25hbCBuYW1lIG9mIHRoZSBoZWFkZXIgaW5wdXQgc2lkZSBwYWNrZXQgdG9cbiAgICogICAgIGFkZGl0aW9uYWxseSBjb25maWd1cmUgd2l0aCBhdWRpbyBpbmZvcm1hdGlvbi4gVGhpcyBjb25maWd1cmF0aW9uIG9ubHlcbiAgICogICAgIG9jY3VycyBiZWZvcmUgdGhlIGdyYXBoIGlzIHNldC9zdGFydGVkLiBJZiB1bnNldCwgYSBkZWZhdWx0IGhlYWRlciBuYW1lXG4gICAqICAgICB3aWxsIGJlIHVzZWQuXG4gICAqL1xuICBjb25maWd1cmVBdWRpbyhudW1DaGFubmVsczogbnVtYmVyLCBudW1TYW1wbGVzOiBudW1iZXIsIHNhbXBsZVJhdGU6IG51bWJlcixcbiAgICAgIHN0cmVhbU5hbWU/OiBzdHJpbmcsIGhlYWRlck5hbWU/OiBzdHJpbmcpIHtcbiAgICBpZiAoIXRoaXMud2FzbU1vZHVsZS5fY29uZmlndXJlQXVkaW8pIHtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnQXR0ZW1wdGluZyB0byB1c2UgY29uZmlndXJlQXVkaW8gd2l0aG91dCBzdXBwb3J0IGZvciBpbnB1dCBhdWRpby4gJyArXG4gICAgICAgICAgJ0lzIGJ1aWxkIGRlcCBcIjpnbF9ncmFwaF9ydW5uZXJfYXVkaW9cIiBtaXNzaW5nPycpO1xuICAgIH1cbiAgICBzdHJlYW1OYW1lID0gc3RyZWFtTmFtZSB8fCAnaW5wdXRfYXVkaW8nO1xuICAgIHRoaXMud3JhcFN0cmluZ1B0cihzdHJlYW1OYW1lLCAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICBoZWFkZXJOYW1lID0gaGVhZGVyTmFtZSB8fCAnYXVkaW9faGVhZGVyJztcbiAgICAgIHRoaXMud3JhcFN0cmluZ1B0cihoZWFkZXJOYW1lLCAoaGVhZGVyTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICAgIHRoaXMud2FzbU1vZHVsZS5fY29uZmlndXJlQXVkaW8oc3RyZWFtTmFtZVB0ciwgaGVhZGVyTmFtZVB0cixcbiAgICAgICAgICBudW1DaGFubmVscywgbnVtU2FtcGxlcywgc2FtcGxlUmF0ZSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgZGlzYWJsaW5nIGF1dG9tYXRpYyBjYW52YXMgcmVzaXppbmcsIGluIGNhc2UgY2xpZW50cyB3YW50IHRvIGNvbnRyb2xcbiAgICogY29udHJvbCB0aGlzLlxuICAgKiBAcGFyYW0gcmVzaXplIFRydWUgd2lsbCByZS1lbmFibGUgYXV0b21hdGljIGNhbnZhcyByZXNpemluZywgd2hpbGUgZmFsc2VcbiAgICogICAgIHdpbGwgZGlzYWJsZSB0aGUgZmVhdHVyZS5cbiAgICovXG4gIHNldEF1dG9SZXNpemVDYW52YXMocmVzaXplOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5hdXRvUmVzaXplQ2FudmFzID0gcmVzaXplO1xuICB9XG5cbiAgLyoqXG4gICAqIEFsbG93cyBkaXNhYmxpbmcgdGhlIGF1dG9tYXRpYyByZW5kZXItdG8tc2NyZWVuIGNvZGUsIGluIGNhc2UgY2xpZW50cyBkb24ndFxuICAgKiBuZWVkL3dhbnQgdGhpcy4gSW4gcGFydGljdWxhciwgdGhpcyByZW1vdmVzIHRoZSByZXF1aXJlbWVudCBmb3IgcGlwZWxpbmVzXG4gICAqIHRvIGhhdmUgYWNjZXNzIHRvIEdQVSByZXNvdXJjZXMsIGFzIHdlbGwgYXMgdGhlIHJlcXVpcmVtZW50IGZvciBncmFwaHMgdG9cbiAgICogaGF2ZSBcImlucHV0X2ZyYW1lc19ncHVcIiBhbmQgXCJvdXRwdXRfZnJhbWVzX2dwdVwiIHN0cmVhbXMgZGVmaW5lZCwgc28gcHVyZVxuICAgKiBDUFUgcGlwZWxpbmVzIGFuZCBub24tdmlkZW8gcGlwZWxpbmVzIGNhbiBiZSBjcmVhdGVkLlxuICAgKiBOT1RFOiBUaGlzIG9ubHkgYWZmZWN0cyBmdXR1cmUgZ3JhcGggaW5pdGlhbGl6YXRpb25zICh2aWEgc2V0R3JhcGggb3JcbiAgICogICAgIGluaXRpYWxpemVHcmFwaCksIGFuZCBkb2VzIE5PVCBhZmZlY3QgdGhlIGN1cnJlbnRseSBydW5uaW5nIGdyYXBoLCBzb1xuICAgKiAgICAgY2FsbHMgdG8gdGhpcyBzaG91bGQgYmUgbWFkZSAqYmVmb3JlKiBzZXRHcmFwaC9pbml0aWFsaXplR3JhcGggZm9yIHRoZVxuICAgKiAgICAgZ3JhcGggZmlsZSBiZWluZyB0YXJnZXRlZC5cbiAgICogQHBhcmFtIGVuYWJsZWQgVHJ1ZSB3aWxsIHJlLWVuYWJsZSBhdXRvbWF0aWMgcmVuZGVyLXRvLXNjcmVlbiBjb2RlIGFuZFxuICAgKiAgICAgY2F1c2UgR1BVIHJlc291cmNlcyB0byBvbmNlIGFnYWluIGJlIHJlcXVlc3RlZCwgd2hpbGUgZmFsc2Ugd2lsbFxuICAgKiAgICAgZGlzYWJsZSB0aGUgZmVhdHVyZS5cbiAgICovXG4gIHNldEF1dG9SZW5kZXJUb1NjcmVlbihlbmFibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy53YXNtTW9kdWxlLl9zZXRBdXRvUmVuZGVyVG9TY3JlZW4oZW5hYmxlZCk7XG4gIH1cblxuICAvKipcbiAgICogQmluZCB0ZXh0dXJlIHRvIG91ciBpbnRlcm5hbCBjYW52YXMsIGFuZCB1cGxvYWQgaW1hZ2Ugc291cmNlIHRvIEdQVS5cbiAgICogUmV0dXJucyB0dXBsZSBbd2lkdGgsIGhlaWdodF0gb2YgdGV4dHVyZS4gIEludGVuZGVkIGZvciBpbnRlcm5hbCB1c2FnZS5cbiAgICovXG4gIGJpbmRUZXh0dXJlVG9TdHJlYW0oaW1hZ2VTb3VyY2U6IEltYWdlU291cmNlLCBzdHJlYW1OYW1lUHRyPzogbnVtYmVyKTpcbiAgICAgIFtudW1iZXIsIG51bWJlcl0ge1xuICAgIGlmICghdGhpcy53YXNtTW9kdWxlLmNhbnZhcykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBPcGVuR0wgY2FudmFzIGNvbmZpZ3VyZWQuJyk7XG4gICAgfVxuXG4gICAgaWYgKCFzdHJlYW1OYW1lUHRyKSB7XG4gICAgICAvLyBUT0RPOiBSZW1vdmUgdGhpcyBwYXRoIG9uY2UgY29tcGxldGVseSByZWZhY3RvcmVkIGF3YXkuXG4gICAgICBjb25zb2xlLmFzc2VydCh0aGlzLndhc21Nb2R1bGUuX2JpbmRUZXh0dXJlVG9DYW52YXMoKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYmluZFRleHR1cmVUb1N0cmVhbShzdHJlYW1OYW1lUHRyKTtcbiAgICB9XG4gICAgY29uc3QgZ2wgPVxuICAgICAgICAodGhpcy53YXNtTW9kdWxlLmNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbDInKSB8fFxuICAgICAgICAgdGhpcy53YXNtTW9kdWxlLmNhbnZhcy5nZXRDb250ZXh0KCd3ZWJnbCcpKSBhcyBXZWJHTDJSZW5kZXJpbmdDb250ZXh0IHxcbiAgICAgICAgV2ViR0xSZW5kZXJpbmdDb250ZXh0IHwgbnVsbDtcbiAgICBpZiAoIWdsKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgJ0ZhaWxlZCB0byBvYnRhaW4gV2ViR0wgY29udGV4dCBmcm9tIHRoZSBwcm92aWRlZCBjYW52YXMuICcgK1xuICAgICAgICAgICdgZ2V0Q29udGV4dCgpYCBzaG91bGQgb25seSBiZSBpbnZva2VkIHdpdGggYHdlYmdsYCBvciBgd2ViZ2wyYC4nKTtcbiAgICB9XG4gICAgZ2wudGV4SW1hZ2UyRChcbiAgICAgICAgZ2wuVEVYVFVSRV8yRCwgMCwgZ2wuUkdCQSwgZ2wuUkdCQSwgZ2wuVU5TSUdORURfQllURSwgaW1hZ2VTb3VyY2UpO1xuXG4gICAgbGV0IHdpZHRoLCBoZWlnaHQ7XG4gICAgaWYgKChpbWFnZVNvdXJjZSBhcyBIVE1MVmlkZW9FbGVtZW50KS52aWRlb1dpZHRoKSB7XG4gICAgICB3aWR0aCA9IChpbWFnZVNvdXJjZSBhcyBIVE1MVmlkZW9FbGVtZW50KS52aWRlb1dpZHRoO1xuICAgICAgaGVpZ2h0ID0gKGltYWdlU291cmNlIGFzIEhUTUxWaWRlb0VsZW1lbnQpLnZpZGVvSGVpZ2h0O1xuICAgIH0gZWxzZSBpZiAoKGltYWdlU291cmNlIGFzIEhUTUxJbWFnZUVsZW1lbnQpLm5hdHVyYWxXaWR0aCkge1xuICAgICAgLy8gVE9ETzogRW5zdXJlIHRoaXMgd29ya3Mgd2l0aCBTVkcgaW1hZ2VzXG4gICAgICB3aWR0aCA9IChpbWFnZVNvdXJjZSBhcyBIVE1MSW1hZ2VFbGVtZW50KS5uYXR1cmFsV2lkdGg7XG4gICAgICBoZWlnaHQgPSAoaW1hZ2VTb3VyY2UgYXMgSFRNTEltYWdlRWxlbWVudCkubmF0dXJhbEhlaWdodDtcbiAgICB9IGVsc2Uge1xuICAgICAgd2lkdGggPSBpbWFnZVNvdXJjZS53aWR0aDtcbiAgICAgIGhlaWdodCA9IGltYWdlU291cmNlLmhlaWdodDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hdXRvUmVzaXplQ2FudmFzICYmXG4gICAgICAgICh3aWR0aCAhPT0gdGhpcy53YXNtTW9kdWxlLmNhbnZhcy53aWR0aCB8fFxuICAgICAgICAgaGVpZ2h0ICE9PSB0aGlzLndhc21Nb2R1bGUuY2FudmFzLmhlaWdodCkpIHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5jYW52YXMud2lkdGggPSB3aWR0aDtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5jYW52YXMuaGVpZ2h0ID0gaGVpZ2h0O1xuICAgIH1cblxuICAgIHJldHVybiBbd2lkdGgsIGhlaWdodF07XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgdGhlIHJhdyBkYXRhIGZyb20gYSBKUyBpbWFnZSBzb3VyY2UsIGFuZCBzZW5kcyBpdCB0byBDKysgdG8gYmVcbiAgICogcHJvY2Vzc2VkLCB3YWl0aW5nIHN5bmNocm9ub3VzbHkgZm9yIHRoZSByZXNwb25zZS4gTm90ZSB0aGF0IHdlIHdpbGwgcmVzaXplXG4gICAqIG91ciBHTCBjYW52YXMgdG8gZml0IHRoZSBpbnB1dCwgc28gaW5wdXQgc2l6ZSBzaG91bGQgb25seSBjaGFuZ2VcbiAgICogaW5mcmVxdWVudGx5LlxuICAgKiBAcGFyYW0gaW1hZ2VTb3VyY2UgQW4gaW1hZ2Ugc291cmNlIHRvIHByb2Nlc3MuXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgY3VycmVudCBmcmFtZSwgaW4gbXMuXG4gICAqIEByZXR1cm4gdGV4dHVyZT8gVGhlIFdlYkdMIHRleHR1cmUgcmVmZXJlbmNlLCBpZiBvbmUgd2FzIHByb2R1Y2VkLlxuICAgKi9cbiAgcHJvY2Vzc0dsKGltYWdlU291cmNlOiBJbWFnZVNvdXJjZSwgdGltZXN0YW1wOiBudW1iZXIpOiBXZWJHTFRleHR1cmVcbiAgICAgIHx1bmRlZmluZWQge1xuICAgIC8vIEJpbmQgdG8gZGVmYXVsdCBpbnB1dCBzdHJlYW1cbiAgICBjb25zdCBbd2lkdGgsIGhlaWdodF0gPSB0aGlzLmJpbmRUZXh0dXJlVG9TdHJlYW0oaW1hZ2VTb3VyY2UpO1xuXG4gICAgLy8gMiBpbnRzIGFuZCBhIGxsICh0aW1lc3RhbXApXG4gICAgY29uc3QgZnJhbWVEYXRhUHRyID0gdGhpcy53YXNtTW9kdWxlLl9tYWxsb2MoMTYpO1xuICAgIHRoaXMud2FzbU1vZHVsZS5IRUFQVTMyW2ZyYW1lRGF0YVB0ciAvIDRdID0gd2lkdGg7XG4gICAgdGhpcy53YXNtTW9kdWxlLkhFQVBVMzJbKGZyYW1lRGF0YVB0ciAvIDQpICsgMV0gPSBoZWlnaHQ7XG4gICAgdGhpcy53YXNtTW9kdWxlLkhFQVBGNjRbKGZyYW1lRGF0YVB0ciAvIDgpICsgMV0gPSB0aW1lc3RhbXA7XG4gICAgLy8gb3V0cHV0UHRyIHBvaW50cyBpbiBIRUFQRjMyLXNwYWNlIHRvIHJ1bm5pbmcgbXNwZiBjYWxjdWxhdGlvbnMsIHdoaWNoIHdlXG4gICAgLy8gZG9uJ3QgdXNlIGF0IHRoZSBtb21lbnQuXG4gICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXVudXNlZC12YXJpYWJsZVxuICAgIGNvbnN0IG91dHB1dFB0ciA9IHRoaXMud2FzbU1vZHVsZS5fcHJvY2Vzc0dsKGZyYW1lRGF0YVB0cikgLyA0O1xuICAgIHRoaXMud2FzbU1vZHVsZS5fZnJlZShmcmFtZURhdGFQdHIpO1xuXG4gICAgLy8gVE9ETzogSG9vayB1cCBXZWJHTFRleHR1cmUgb3V0cHV0LCB3aGVuIGdpdmVuLlxuICAgIC8vIFRPRE86IEFsbG93IHVzZXIgdG8gdG9nZ2xlIHdoZXRoZXIgb3Igbm90IHRvIHJlbmRlciBvdXRwdXQgaW50byBjYW52YXMuXG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyBKYXZhU2NyaXB0IHN0cmluZyBpbnB1dCBwYXJhbWV0ZXJzIGludG8gQysrIGMtc3RyaW5nIHBvaW50ZXJzLlxuICAgKiBTZWUgYi8yMDQ4MzAxNTggZm9yIG1vcmUgZGV0YWlscy4gSW50ZW5kZWQgZm9yIGludGVybmFsIHVzYWdlLlxuICAgKi9cbiAgd3JhcFN0cmluZ1B0cihzdHJpbmdEYXRhOiBzdHJpbmcsIHN0cmluZ1B0ckZ1bmM6IChwdHI6IG51bWJlcikgPT4gdm9pZCk6XG4gICAgICB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzTXVsdGlTdHJlYW1TdXBwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdObyB3YXNtIG11bHRpc3RyZWFtIHN1cHBvcnQgZGV0ZWN0ZWQ6IGVuc3VyZSBkZXBlbmRlbmN5ICcgK1xuICAgICAgICAgICdpbmNsdXNpb24gb2YgOmdsX2dyYXBoX3J1bm5lcl9pbnRlcm5hbF9tdWx0aV9pbnB1dCB0YXJnZXQnKTtcbiAgICB9XG4gICAgY29uc3Qgc3RyaW5nRGF0YVB0ciA9IHRoaXMud2FzbU1vZHVsZS5zdHJpbmdUb05ld1VURjgoc3RyaW5nRGF0YSk7XG4gICAgc3RyaW5nUHRyRnVuYyhzdHJpbmdEYXRhUHRyKTtcbiAgICB0aGlzLndhc21Nb2R1bGUuX2ZyZWUoc3RyaW5nRGF0YVB0cik7XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgSmF2YVNjcmlwdCBzdHJpbmcgaW5wdXQgcGFyYW1ldGVycyBpbnRvIEMrKyBjLXN0cmluZyBwb2ludGVycy5cbiAgICogU2VlIGIvMjA0ODMwMTU4IGZvciBtb3JlIGRldGFpbHMuXG4gICAqL1xuICB3cmFwU3RyaW5nUHRyUHRyKHN0cmluZ0RhdGE6IHN0cmluZ1tdLCBwdHJGdW5jOiAocHRyOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzTXVsdGlTdHJlYW1TdXBwb3J0KSB7XG4gICAgICBjb25zb2xlLmVycm9yKFxuICAgICAgICAgICdObyB3YXNtIG11bHRpc3RyZWFtIHN1cHBvcnQgZGV0ZWN0ZWQ6IGVuc3VyZSBkZXBlbmRlbmN5ICcgK1xuICAgICAgICAgICdpbmNsdXNpb24gb2YgOmdsX2dyYXBoX3J1bm5lcl9pbnRlcm5hbF9tdWx0aV9pbnB1dCB0YXJnZXQnKTtcbiAgICB9XG4gICAgY29uc3QgdWludDMyQXJyYXkgPSBuZXcgVWludDMyQXJyYXkoc3RyaW5nRGF0YS5sZW5ndGgpO1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgc3RyaW5nRGF0YS5sZW5ndGg7IGkrKykge1xuICAgICAgdWludDMyQXJyYXlbaV0gPSB0aGlzLndhc21Nb2R1bGUuc3RyaW5nVG9OZXdVVEY4KHN0cmluZ0RhdGFbaV0pO1xuICAgIH1cbiAgICBjb25zdCBoZWFwU3BhY2UgPSB0aGlzLndhc21Nb2R1bGUuX21hbGxvYyh1aW50MzJBcnJheS5sZW5ndGggKiA0KTtcbiAgICB0aGlzLndhc21Nb2R1bGUuSEVBUFUzMi5zZXQodWludDMyQXJyYXksIGhlYXBTcGFjZSA+PiAyKTtcblxuICAgIHB0ckZ1bmMoaGVhcFNwYWNlKTtcbiAgICBmb3IgKGNvbnN0IHVpbnQzMnB0ciBvZiB1aW50MzJBcnJheSkge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9mcmVlKHVpbnQzMnB0cik7XG4gICAgfVxuICAgIHRoaXMud2FzbU1vZHVsZS5fZnJlZShoZWFwU3BhY2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIEludm9rZXMgdGhlIGNhbGxiYWNrIHdpdGggdGhlIGN1cnJlbnQgY2FsY3VsYXRvciBjb25maWd1cmF0aW9uIChpbiBiaW5hcnlcbiAgICogZm9ybWF0KS5cbiAgICpcbiAgICogQ29uc3VtZXJzIG11c3QgZGVzZXJpYWxpemUgdGhlIGJpbmFyeSByZXByZXNlbnRhdGlvbiB0aGVtc2VsdmVzIGFzIHRoaXNcbiAgICogYXZvaWRzIGFkZGRpbmcgYSBkaXJlY3QgZGVwZW5kZW5jeSBvbiB0aGUgUHJvdG9idWYgSlNQQiB0YXJnZXQgaW4gdGhlIGdyYXBoXG4gICAqIGxpYnJhcnkuXG4gICAqL1xuICBnZXRDYWxjdWxhdG9yR3JhcGhDb25maWcoXG4gICAgICBjYWxsYmFjazogQ2FsY3VsYXRvckdyYXBoQ29uZmlnTGlzdGVuZXIsIG1ha2VEZWVwQ29weT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ZW5lciA9IENBTENVTEFUT1JfR1JBUEhfQ09ORklHX0xJU1RFTkVSX05BTUU7XG5cbiAgICAvLyBDcmVhdGUgYSBzaG9ydC1saXZlZCBsaXN0ZW5lciB0byByZWNlaXZlIHRoZSBiaW5hcnkgZW5jb2RlZCBwcm90b1xuICAgIHRoaXMuc2V0TGlzdGVuZXIobGlzdGVuZXIsIChkYXRhOiBVaW50OEFycmF5KSA9PiB7XG4gICAgICBjYWxsYmFjayhkYXRhKTtcbiAgICB9KTtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIobGlzdGVuZXIsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fZ2V0R3JhcGhDb25maWcob3V0cHV0U3RyZWFtTmFtZVB0ciwgbWFrZURlZXBDb3B5KTtcbiAgICB9KTtcblxuICAgIGRlbGV0ZSB0aGlzLndhc21Nb2R1bGUuc2ltcGxlTGlzdGVuZXJzIVtsaXN0ZW5lcl07XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyBleGlzdGVuY2Ugb2YgdGhlIHNpbXBsZSBsaXN0ZW5lcnMgdGFibGUgYW5kIHJlZ2lzdGVycyB0aGUgY2FsbGJhY2suXG4gICAqIEludGVuZGVkIGZvciBpbnRlcm5hbCB1c2FnZS5cbiAgICovXG4gIHNldExpc3RlbmVyPFQ+KG91dHB1dFN0cmVhbU5hbWU6IHN0cmluZywgY2FsbGJhY2tGY246IFNpbXBsZUxpc3RlbmVyPFQ+KSB7XG4gICAgdGhpcy53YXNtTW9kdWxlLnNpbXBsZUxpc3RlbmVycyA9IHRoaXMud2FzbU1vZHVsZS5zaW1wbGVMaXN0ZW5lcnMgfHwge307XG4gICAgdGhpcy53YXNtTW9kdWxlLnNpbXBsZUxpc3RlbmVyc1tvdXRwdXRTdHJlYW1OYW1lXSA9XG4gICAgICAgIGNhbGxiYWNrRmNuIGFzIFNpbXBsZUxpc3RlbmVyPHVua25vd24+O1xuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZXMgZXhpc3RlbmNlIG9mIHRoZSB2ZWN0b3IgbGlzdGVuZXJzIHRhYmxlIGFuZCByZWdpc3RlcnMgdGhlIGNhbGxiYWNrLlxuICAgKiBJbnRlbmRlZCBmb3IgaW50ZXJuYWwgdXNhZ2UuXG4gICAqL1xuICBzZXRWZWN0b3JMaXN0ZW5lcjxUPihcbiAgICAgIG91dHB1dFN0cmVhbU5hbWU6IHN0cmluZywgY2FsbGJhY2tGY246IFNpbXBsZUxpc3RlbmVyPFRbXT4pIHtcbiAgICBsZXQgYnVmZmVyOiBUW10gPSBbXTtcbiAgICB0aGlzLndhc21Nb2R1bGUuc2ltcGxlTGlzdGVuZXJzID0gdGhpcy53YXNtTW9kdWxlLnNpbXBsZUxpc3RlbmVycyB8fCB7fTtcbiAgICB0aGlzLndhc21Nb2R1bGUuc2ltcGxlTGlzdGVuZXJzW291dHB1dFN0cmVhbU5hbWVdID1cbiAgICAgICAgKGRhdGE6IHVua25vd24sIGRvbmU6IGJvb2xlYW4sIHRpbWVzdGFtcDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgaWYgKGRvbmUpIHtcbiAgICAgICAgICAgIGNhbGxiYWNrRmNuKGJ1ZmZlciwgdGltZXN0YW1wKTtcbiAgICAgICAgICAgIGJ1ZmZlciA9IFtdO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBidWZmZXIucHVzaChkYXRhIGFzIFQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGxpc3RlbmVyIHRoYXQgd2lsbCBiZSBpbnZva2VkIHdoZW4gdGhlIE1lZGlhUGlwZSBmcmFtZXdvcmtcbiAgICogcmV0dXJucyBhbiBlcnJvci5cbiAgICovXG4gIGF0dGFjaEVycm9yTGlzdGVuZXIoY2FsbGJhY2tGY246IChjb2RlOiBudW1iZXIsIG1lc3NhZ2U6IHN0cmluZykgPT4gdm9pZCkge1xuICAgIHRoaXMud2FzbU1vZHVsZS5lcnJvckxpc3RlbmVyID0gY2FsbGJhY2tGY247XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBsaXN0ZW5lciB0aGF0IHdpbGwgYmUgaW52b2tlZCB3aGVuIHRoZSBNZWRpYVBpcGUgZnJhbWV3b3JrXG4gICAqIHJlY2VpdmVzIGFuIGVtcHR5IHBhY2tldCBvbiB0aGUgcHJvdmlkZWQgb3V0cHV0IHN0cmVhbS4gVGhpcyBjYW4gYmUgdXNlZFxuICAgKiB0byByZWNlaXZlIHRoZSBsYXRlc3Qgb3V0cHV0IHRpbWVzdGFtcC5cbiAgICpcbiAgICogRW1wdHkgcGFja2V0IGxpc3RlbmVycyBhcmUgb25seSBhY3RpdmUgaWYgdGhlcmUgaXMgYSBjb3JyZXNwb25kaW5nIHBhY2tldFxuICAgKiBsaXN0ZW5lci5cbiAgICpcbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gcmVjZWl2ZVxuICAgKiAgICBlbXB0eSBwYWNrZXRzIGZyb20uXG4gICAqIEBwYXJhbSBjYWxsYmFja0ZjbiBUaGUgY2FsbGJhY2sgdG8gcmVjZWl2ZSB0aGUgdGltZXN0YW1wLlxuICAgKi9cbiAgYXR0YWNoRW1wdHlQYWNrZXRMaXN0ZW5lcihcbiAgICAgIG91dHB1dFN0cmVhbU5hbWU6IHN0cmluZywgY2FsbGJhY2tGY246IEVtcHR5UGFja2V0TGlzdGVuZXIpIHtcbiAgICB0aGlzLndhc21Nb2R1bGUuZW1wdHlQYWNrZXRMaXN0ZW5lcnMgPVxuICAgICAgICB0aGlzLndhc21Nb2R1bGUuZW1wdHlQYWNrZXRMaXN0ZW5lcnMgfHwge307XG4gICAgdGhpcy53YXNtTW9kdWxlLmVtcHR5UGFja2V0TGlzdGVuZXJzW291dHB1dFN0cmVhbU5hbWVdID0gY2FsbGJhY2tGY247XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgdGhlIHJhdyBkYXRhIGZyb20gYSBKUyBhdWRpbyBjYXB0dXJlIGFycmF5LCBhbmQgc2VuZHMgaXQgdG8gQysrIHRvIGJlXG4gICAqIHByb2Nlc3NlZC5cbiAgICogQHBhcmFtIGF1ZGlvRGF0YSBBbiBhcnJheSBvZiByYXcgYXVkaW8gY2FwdHVyZSBkYXRhLCBsaWtlXG4gICAqICAgICBmcm9tIGEgY2FsbCB0byBnZXRDaGFubmVsRGF0YSBvbiBhbiBBdWRpb0J1ZmZlci5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIE1lZGlhUGlwZSBncmFwaCBzdHJlYW0gdG8gYWRkIHRoZSBhdWRpb1xuICAgKiAgICAgZGF0YSB0by5cbiAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIG9mIHRoZSBjdXJyZW50IGZyYW1lLCBpbiBtcy5cbiAgICovXG4gIGFkZEF1ZGlvVG9TdHJlYW0oXG4gICAgICBhdWRpb0RhdGE6IEZsb2F0MzJBcnJheSwgc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIC8vIG51bUNoYW5uZWxzIGFuZCBudW1TYW1wbGVzIGJlaW5nIDAgd2lsbCBjYXVzZSBkZWZhdWx0cyB0byBiZSB1c2VkLFxuICAgIC8vIHdoaWNoIHdpbGwgcmVmbGVjdCB2YWx1ZXMgZnJvbSBsYXN0IGNhbGwgdG8gY29uZmlndXJlQXVkaW8uXG4gICAgdGhpcy5hZGRBdWRpb1RvU3RyZWFtV2l0aFNoYXBlKGF1ZGlvRGF0YSwgMCwgMCwgc3RyZWFtTmFtZSwgdGltZXN0YW1wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyB0aGUgcmF3IGRhdGEgZnJvbSBhIEpTIGF1ZGlvIGNhcHR1cmUgYXJyYXksIGFuZCBzZW5kcyBpdCB0byBDKysgdG8gYmVcbiAgICogcHJvY2Vzc2VkLCBzaGFwaW5nIHRoZSBhdWRpb0RhdGEgYXJyYXkgaW50byBhbiBhdWRpbyBtYXRyaXggYWNjb3JkaW5nIHRvXG4gICAqIHRoZSBudW1DaGFubmVscyBhbmQgbnVtU2FtcGxlcyBwYXJhbWV0ZXJzLlxuICAgKiBAcGFyYW0gYXVkaW9EYXRhIEFuIGFycmF5IG9mIHJhdyBhdWRpbyBjYXB0dXJlIGRhdGEsIGxpa2VcbiAgICogICAgIGZyb20gYSBjYWxsIHRvIGdldENoYW5uZWxEYXRhIG9uIGFuIEF1ZGlvQnVmZmVyLlxuICAgKiBAcGFyYW0gbnVtQ2hhbm5lbHMgVGhlIG51bWJlciBvZiBhdWRpbyBjaGFubmVscyB0aGlzIGRhdGEgcmVwcmVzZW50cy4gSWYgMFxuICAgKiAgICAgaXMgcGFzc2VkLCB0aGVuIHRoZSB2YWx1ZSB3aWxsIGJlIHRha2VuIGZyb20gdGhlIGxhc3QgY2FsbCB0b1xuICAgKiAgICAgY29uZmlndXJlQXVkaW8uXG4gICAqIEBwYXJhbSBudW1TYW1wbGVzIFRoZSBudW1iZXIgb2YgYXVkaW8gc2FtcGxlcyBjYXB0dXJlZCBpbiB0aGlzIGRhdGEgcGFja2V0LlxuICAgKiAgICAgSWYgMCBpcyBwYXNzZWQsIHRoZW4gdGhlIHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgbGFzdCBjYWxsIHRvXG4gICAqICAgICBjb25maWd1cmVBdWRpby5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIE1lZGlhUGlwZSBncmFwaCBzdHJlYW0gdG8gYWRkIHRoZSBhdWRpb1xuICAgKiAgICAgZGF0YSB0by5cbiAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIG9mIHRoZSBjdXJyZW50IGZyYW1lLCBpbiBtcy5cbiAgICovXG4gIGFkZEF1ZGlvVG9TdHJlYW1XaXRoU2hhcGUoXG4gICAgICBhdWRpb0RhdGE6IEZsb2F0MzJBcnJheSwgbnVtQ2hhbm5lbHM6IG51bWJlciwgbnVtU2FtcGxlczogbnVtYmVyLFxuICAgICAgc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcikge1xuICAgIC8vIDQgYnl0ZXMgZm9yIGVhY2ggRjMyXG4gICAgY29uc3Qgc2l6ZSA9IGF1ZGlvRGF0YS5sZW5ndGggKiA0O1xuICAgIGlmICh0aGlzLmF1ZGlvU2l6ZSAhPT0gc2l6ZSkge1xuICAgICAgaWYgKHRoaXMuYXVkaW9QdHIpIHtcbiAgICAgICAgdGhpcy53YXNtTW9kdWxlLl9mcmVlKHRoaXMuYXVkaW9QdHIpO1xuICAgICAgfVxuICAgICAgdGhpcy5hdWRpb1B0ciA9IHRoaXMud2FzbU1vZHVsZS5fbWFsbG9jKHNpemUpO1xuICAgICAgdGhpcy5hdWRpb1NpemUgPSBzaXplO1xuICAgIH1cbiAgICB0aGlzLndhc21Nb2R1bGUuSEVBUEYzMi5zZXQoYXVkaW9EYXRhLCB0aGlzLmF1ZGlvUHRyISAvIDQpO1xuXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKHN0cmVhbU5hbWUsIChzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYWRkQXVkaW9Ub0lucHV0U3RyZWFtKFxuICAgICAgICAgIHRoaXMuYXVkaW9QdHIhLCBudW1DaGFubmVscywgbnVtU2FtcGxlcywgc3RyZWFtTmFtZVB0ciwgdGltZXN0YW1wKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUYWtlcyB0aGUgcmVsZXZhbnQgaW5mb3JtYXRpb24gZnJvbSB0aGUgSFRNTCB2aWRlbyBvciBpbWFnZSBlbGVtZW50LCBhbmRcbiAgICogcGFzc2VzIGl0IGludG8gdGhlIFdlYkdMLWJhc2VkIGdyYXBoIGZvciBwcm9jZXNzaW5nIG9uIHRoZSBnaXZlbiBzdHJlYW0gYXRcbiAgICogdGhlIGdpdmVuIHRpbWVzdGFtcC4gQ2FuIGJlIHVzZWQgZm9yIGFkZGl0aW9uYWwgYXV4aWxpYXJ5IEdwdUJ1ZmZlciBpbnB1dFxuICAgKiBzdHJlYW1zLiBQcm9jZXNzaW5nIHdpbGwgbm90IG9jY3VyIHVudGlsIGEgYmxvY2tpbmcgY2FsbCAobGlrZVxuICAgKiBwcm9jZXNzVmlkZW9HbCBvciBmaW5pc2hQcm9jZXNzaW5nKSBpcyBtYWRlLiBGb3IgdXNlIHdpdGhcbiAgICogJ2dsX2dyYXBoX3J1bm5lcl9pbnRlcm5hbF9tdWx0aV9pbnB1dCcuXG4gICAqIEBwYXJhbSBpbWFnZVNvdXJjZSBSZWZlcmVuY2UgdG8gdGhlIHZpZGVvIGZyYW1lIHdlIHdpc2ggdG8gYWRkIGludG8gb3VyXG4gICAqICAgICBncmFwaC5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIE1lZGlhUGlwZSBncmFwaCBzdHJlYW0gdG8gYWRkIHRoZSBmcmFtZVxuICAgKiAgICAgdG8uXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgaW5wdXQgZnJhbWUsIGluIG1zLlxuICAgKi9cbiAgYWRkR3B1QnVmZmVyVG9TdHJlYW0oXG4gICAgICBpbWFnZVNvdXJjZTogSW1hZ2VTb3VyY2UsIHN0cmVhbU5hbWU6IHN0cmluZywgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc3RyZWFtTmFtZSwgKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgW3dpZHRoLCBoZWlnaHRdID1cbiAgICAgICAgICB0aGlzLmJpbmRUZXh0dXJlVG9TdHJlYW0oaW1hZ2VTb3VyY2UsIHN0cmVhbU5hbWVQdHIpO1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRCb3VuZFRleHR1cmVUb1N0cmVhbShcbiAgICAgICAgICBzdHJlYW1OYW1lUHRyLCB3aWR0aCwgaGVpZ2h0LCB0aW1lc3RhbXApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgYm9vbGVhbiBwYWNrZXQgaW50byB0aGUgc3BlY2lmaWVkIHN0cmVhbSBhdCB0aGUgZ2l2ZW4gdGltZXN0YW1wLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgYm9vbGVhbiBkYXRhIHRvIHNlbmQuXG4gICAqIEBwYXJhbSBzdHJlYW1OYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzdHJlYW0gdG8gc2VuZCBkYXRhIGludG8uXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgaW5wdXQgZGF0YSwgaW4gbXMuXG4gICAqL1xuICBhZGRCb29sVG9TdHJlYW0oZGF0YTogYm9vbGVhbiwgc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud3JhcFN0cmluZ1B0cihzdHJlYW1OYW1lLCAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZEJvb2xUb0lucHV0U3RyZWFtKGRhdGEsIHN0cmVhbU5hbWVQdHIsIHRpbWVzdGFtcCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBkb3VibGUgcGFja2V0IGludG8gdGhlIHNwZWNpZmllZCBzdHJlYW0gYXQgdGhlIGdpdmVuIHRpbWVzdGFtcC5cbiAgICogQHBhcmFtIGRhdGEgVGhlIGRvdWJsZSBkYXRhIHRvIHNlbmQuXG4gICAqIEBwYXJhbSBzdHJlYW1OYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzdHJlYW0gdG8gc2VuZCBkYXRhIGludG8uXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgaW5wdXQgZGF0YSwgaW4gbXMuXG4gICAqL1xuICBhZGREb3VibGVUb1N0cmVhbShkYXRhOiBudW1iZXIsIHN0cmVhbU5hbWU6IHN0cmluZywgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc3RyZWFtTmFtZSwgKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGREb3VibGVUb0lucHV0U3RyZWFtKGRhdGEsIHN0cmVhbU5hbWVQdHIsIHRpbWVzdGFtcCk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBmbG9hdCBwYWNrZXQgaW50byB0aGUgc3BlY2lmaWVkIHN0cmVhbSBhdCB0aGUgZ2l2ZW4gdGltZXN0YW1wLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZmxvYXQgZGF0YSB0byBzZW5kLlxuICAgKiBAcGFyYW0gc3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggaW5wdXQgc3RyZWFtIHRvIHNlbmQgZGF0YSBpbnRvLlxuICAgKiBAcGFyYW0gdGltZXN0YW1wIFRoZSB0aW1lc3RhbXAgb2YgdGhlIGlucHV0IGRhdGEsIGluIG1zLlxuICAgKi9cbiAgYWRkRmxvYXRUb1N0cmVhbShkYXRhOiBudW1iZXIsIHN0cmVhbU5hbWU6IHN0cmluZywgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc3RyZWFtTmFtZSwgKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgLy8gTk9URTogX2FkZEZsb2F0VG9TdHJlYW0gYW5kIF9hZGRJbnRUb1N0cmVhbSBhcmUgcmVzZXJ2ZWQgZm9yIEpTXG4gICAgICAvLyBDYWxjdWxhdG9ycyBjdXJyZW50bHk7IHdlIG1heSB3YW50IHRvIHJldmlzaXQgdGhpcyBuYW1pbmcgc2NoZW1lIGluIHRoZVxuICAgICAgLy8gZnV0dXJlLlxuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRGbG9hdFRvSW5wdXRTdHJlYW0oZGF0YSwgc3RyZWFtTmFtZVB0ciwgdGltZXN0YW1wKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhbiBpbnRlZ2VyIHBhY2tldCBpbnRvIHRoZSBzcGVjaWZpZWQgc3RyZWFtIGF0IHRoZSBnaXZlbiB0aW1lc3RhbXAuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBpbnRlZ2VyIGRhdGEgdG8gc2VuZC5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHN0cmVhbSB0byBzZW5kIGRhdGEgaW50by5cbiAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIG9mIHRoZSBpbnB1dCBkYXRhLCBpbiBtcy5cbiAgICovXG4gIGFkZEludFRvU3RyZWFtKGRhdGE6IG51bWJlciwgc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud3JhcFN0cmluZ1B0cihzdHJlYW1OYW1lLCAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZEludFRvSW5wdXRTdHJlYW0oZGF0YSwgc3RyZWFtTmFtZVB0ciwgdGltZXN0YW1wKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZW5kcyBhIHN0cmluZyBwYWNrZXQgaW50byB0aGUgc3BlY2lmaWVkIHN0cmVhbSBhdCB0aGUgZ2l2ZW4gdGltZXN0YW1wLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgc3RyaW5nIGRhdGEgdG8gc2VuZC5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHN0cmVhbSB0byBzZW5kIGRhdGEgaW50by5cbiAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIG9mIHRoZSBpbnB1dCBkYXRhLCBpbiBtcy5cbiAgICovXG4gIGFkZFN0cmluZ1RvU3RyZWFtKGRhdGE6IHN0cmluZywgc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud3JhcFN0cmluZ1B0cihzdHJlYW1OYW1lLCAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndyYXBTdHJpbmdQdHIoZGF0YSwgKGRhdGFQdHI6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZFN0cmluZ1RvSW5wdXRTdHJlYW0oXG4gICAgICAgICAgICBkYXRhUHRyLCBzdHJlYW1OYW1lUHRyLCB0aW1lc3RhbXApO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHBhY2tldCBpbnRvIHRoZSBzcGVjaWZpZWQgc3RyZWFtIGF0IHRoZVxuICAgKiBnaXZlbiB0aW1lc3RhbXAuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSByZWNvcmRzIHRvIHNlbmQgKHdpbGwgYmVjb21lIGFcbiAgICogICAgICAgICAgICAgc3RkOjpmbGF0X2hhc2hfbWFwPHN0ZDo6c3RyaW5nLCBzdGQ6OnN0cmluZykuXG4gICAqIEBwYXJhbSBzdHJlYW1OYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzdHJlYW0gdG8gc2VuZCBkYXRhIGludG8uXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgaW5wdXQgZGF0YSwgaW4gbXMuXG4gICAqL1xuICBhZGRTdHJpbmdSZWNvcmRUb1N0cmVhbShcbiAgICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4sIHN0cmVhbU5hbWU6IHN0cmluZyxcbiAgICAgIHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKHN0cmVhbU5hbWUsIChzdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud3JhcFN0cmluZ1B0clB0cihPYmplY3Qua2V5cyhkYXRhKSwgKGtleUxpc3Q6IG51bWJlcikgPT4ge1xuICAgICAgICB0aGlzLndyYXBTdHJpbmdQdHJQdHIoT2JqZWN0LnZhbHVlcyhkYXRhKSwgKHZhbHVlTGlzdDogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRGbGF0SGFzaE1hcFRvSW5wdXRTdHJlYW0oXG4gICAgICAgICAgICAgIGtleUxpc3QsIHZhbHVlTGlzdCwgT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoLCBzdHJlYW1OYW1lUHRyLFxuICAgICAgICAgICAgICB0aW1lc3RhbXApO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbmRzIGEgc2VyaWFsaXplZCBwcm90b2J1ZmZlciBwYWNrZXQgaW50byB0aGUgc3BlY2lmaWVkIHN0cmVhbSBhdCB0aGVcbiAgICogICAgIGdpdmVuIHRpbWVzdGFtcCwgdG8gYmUgcGFyc2VkIGludG8gdGhlIHNwZWNpZmllZCBwcm90b2J1ZmZlciB0eXBlLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgYmluYXJ5IChzZXJpYWxpemVkKSByYXcgcHJvdG9idWZmZXIgZGF0YS5cbiAgICogQHBhcmFtIHByb3RvVHlwZSBUaGUgQysrIG5hbWVzcGFjZWQgdHlwZSB0aGlzIHByb3RvYnVmZmVyIGRhdGEgY29ycmVzcG9uZHNcbiAgICogICAgIHRvIChlLmcuIFwiZm9vLkJhclwiKS4gSXQgd2lsbCBiZSBjb252ZXJ0ZWQgdG8gdGhpcyB0eXBlIHdoZW4gb3V0cHV0IGFzIGFcbiAgICogICAgIHBhY2tldCBpbnRvIHRoZSBncmFwaC5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHN0cmVhbSB0byBzZW5kIGRhdGEgaW50by5cbiAgICogQHBhcmFtIHRpbWVzdGFtcCBUaGUgdGltZXN0YW1wIG9mIHRoZSBpbnB1dCBkYXRhLCBpbiBtcy5cbiAgICovXG4gIGFkZFByb3RvVG9TdHJlYW0oXG4gICAgICBkYXRhOiBVaW50OEFycmF5LCBwcm90b1R5cGU6IHN0cmluZywgc3RyZWFtTmFtZTogc3RyaW5nLFxuICAgICAgdGltZXN0YW1wOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc3RyZWFtTmFtZSwgKHN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53cmFwU3RyaW5nUHRyKHByb3RvVHlwZSwgKHByb3RvVHlwZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICAgIC8vIERlZXAtY29weSBwcm90byBkYXRhIGludG8gV2FzbSBoZWFwXG4gICAgICAgIGNvbnN0IGRhdGFQdHIgPSB0aGlzLndhc21Nb2R1bGUuX21hbGxvYyhkYXRhLmxlbmd0aCk7XG4gICAgICAgIC8vIFRPRE86IEVuc3VyZSB0aGlzIGlzIHRoZSBmYXN0ZXN0IHdheSB0byBjb3B5IHRoaXMgZGF0YS5cbiAgICAgICAgdGhpcy53YXNtTW9kdWxlLkhFQVBVOC5zZXQoZGF0YSwgZGF0YVB0cik7XG4gICAgICAgIHRoaXMud2FzbU1vZHVsZS5fYWRkUHJvdG9Ub0lucHV0U3RyZWFtKFxuICAgICAgICAgICAgZGF0YVB0ciwgZGF0YS5sZW5ndGgsIHByb3RvVHlwZVB0ciwgc3RyZWFtTmFtZVB0ciwgdGltZXN0YW1wKTtcbiAgICAgICAgdGhpcy53YXNtTW9kdWxlLl9mcmVlKGRhdGFQdHIpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VuZHMgYW4gZW1wdHkgcGFja2V0IGludG8gdGhlIHNwZWNpZmllZCBzdHJlYW0gYXQgdGhlIGdpdmVuIHRpbWVzdGFtcCxcbiAgICogICAgIGVmZmVjdGl2ZWx5IGFkdmFuY2luZyB0aGF0IGlucHV0IHN0cmVhbSdzIHRpbWVzdGFtcCBib3VuZHMgd2l0aG91dFxuICAgKiAgICAgc2VuZGluZyBhZGRpdGlvbmFsIGRhdGEgcGFja2V0cy5cbiAgICogQHBhcmFtIHN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHN0cmVhbSB0byBzZW5kIHRoZSBlbXB0eVxuICAgKiAgICAgcGFja2V0IGludG8uXG4gICAqIEBwYXJhbSB0aW1lc3RhbXAgVGhlIHRpbWVzdGFtcCBvZiB0aGUgZW1wdHkgcGFja2V0LCBpbiBtcy5cbiAgICovXG4gIGFkZEVtcHR5UGFja2V0VG9TdHJlYW0oc3RyZWFtTmFtZTogc3RyaW5nLCB0aW1lc3RhbXA6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMud3JhcFN0cmluZ1B0cihzdHJlYW1OYW1lLCAoc3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZEVtcHR5UGFja2V0VG9JbnB1dFN0cmVhbShzdHJlYW1OYW1lUHRyLCB0aW1lc3RhbXApO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgYm9vbGVhbiBwYWNrZXQgdG8gdGhlIHNwZWNpZmllZCBpbnB1dF9zaWRlX3BhY2tldC5cbiAgICogQHBhcmFtIGRhdGEgVGhlIGJvb2xlYW4gZGF0YSB0byBzZW5kLlxuICAgKiBAcGFyYW0gc2lkZVBhY2tldE5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHNpZGUgcGFja2V0IHRvIHNlbmQgZGF0YVxuICAgKiAgICAgaW50by5cbiAgICovXG4gIGFkZEJvb2xUb0lucHV0U2lkZVBhY2tldChkYXRhOiBib29sZWFuLCBzaWRlUGFja2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKHNpZGVQYWNrZXROYW1lLCAoc2lkZVBhY2tldE5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRCb29sVG9JbnB1dFNpZGVQYWNrZXQoZGF0YSwgc2lkZVBhY2tldE5hbWVQdHIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgZG91YmxlIHBhY2tldCB0byB0aGUgc3BlY2lmaWVkIGlucHV0X3NpZGVfcGFja2V0LlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZG91YmxlIGRhdGEgdG8gc2VuZC5cbiAgICogQHBhcmFtIHNpZGVQYWNrZXROYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzaWRlIHBhY2tldCB0byBzZW5kIGRhdGFcbiAgICogICAgIGludG8uXG4gICAqL1xuICBhZGREb3VibGVUb0lucHV0U2lkZVBhY2tldChkYXRhOiBudW1iZXIsIHNpZGVQYWNrZXROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc2lkZVBhY2tldE5hbWUsIChzaWRlUGFja2V0TmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZERvdWJsZVRvSW5wdXRTaWRlUGFja2V0KGRhdGEsIHNpZGVQYWNrZXROYW1lUHRyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGZsb2F0IHBhY2tldCB0byB0aGUgc3BlY2lmaWVkIGlucHV0X3NpZGVfcGFja2V0LlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZmxvYXQgZGF0YSB0byBzZW5kLlxuICAgKiBAcGFyYW0gc2lkZVBhY2tldE5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIGlucHV0IHNpZGUgcGFja2V0IHRvIHNlbmQgZGF0YVxuICAgKiAgICAgaW50by5cbiAgICovXG4gIGFkZEZsb2F0VG9JbnB1dFNpZGVQYWNrZXQoZGF0YTogbnVtYmVyLCBzaWRlUGFja2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKHNpZGVQYWNrZXROYW1lLCAoc2lkZVBhY2tldE5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRGbG9hdFRvSW5wdXRTaWRlUGFja2V0KGRhdGEsIHNpZGVQYWNrZXROYW1lUHRyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGludGVnZXIgcGFja2V0IHRvIHRoZSBzcGVjaWZpZWQgaW5wdXRfc2lkZV9wYWNrZXQuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBpbnRlZ2VyIGRhdGEgdG8gc2VuZC5cbiAgICogQHBhcmFtIHNpZGVQYWNrZXROYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzaWRlIHBhY2tldCB0byBzZW5kIGRhdGFcbiAgICogICAgIGludG8uXG4gICAqL1xuICBhZGRJbnRUb0lucHV0U2lkZVBhY2tldChkYXRhOiBudW1iZXIsIHNpZGVQYWNrZXROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc2lkZVBhY2tldE5hbWUsIChzaWRlUGFja2V0TmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2FkZEludFRvSW5wdXRTaWRlUGFja2V0KGRhdGEsIHNpZGVQYWNrZXROYW1lUHRyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIHN0cmluZyBwYWNrZXQgdG8gdGhlIHNwZWNpZmllZCBpbnB1dF9zaWRlX3BhY2tldC5cbiAgICogQHBhcmFtIGRhdGEgVGhlIHN0cmluZyBkYXRhIHRvIHNlbmQuXG4gICAqIEBwYXJhbSBzaWRlUGFja2V0TmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggaW5wdXQgc2lkZSBwYWNrZXQgdG8gc2VuZCBkYXRhXG4gICAqICAgICBpbnRvLlxuICAgKi9cbiAgYWRkU3RyaW5nVG9JbnB1dFNpZGVQYWNrZXQoZGF0YTogc3RyaW5nLCBzaWRlUGFja2V0TmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKHNpZGVQYWNrZXROYW1lLCAoc2lkZVBhY2tldE5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53cmFwU3RyaW5nUHRyKGRhdGEsIChkYXRhUHRyOiBudW1iZXIpID0+IHtcbiAgICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRTdHJpbmdUb0lucHV0U2lkZVBhY2tldChkYXRhUHRyLCBzaWRlUGFja2V0TmFtZVB0cik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIHNlcmlhbGl6ZWQgcHJvdG8gcGFja2V0IHRvIHRoZSBzcGVjaWZpZWQgaW5wdXRfc2lkZV9wYWNrZXQuXG4gICAqIEBwYXJhbSBkYXRhIFRoZSBiaW5hcnkgKHNlcmlhbGl6ZWQpIHJhdyBwcm90b2J1ZmZlciBkYXRhLlxuICAgKiBAcGFyYW0gcHJvdG9UeXBlIFRoZSBDKysgbmFtZXNwYWNlZCB0eXBlIHRoaXMgcHJvdG9idWZmZXIgZGF0YSBjb3JyZXNwb25kc1xuICAgKiAgICAgdG8uIEl0IHdpbGwgYmUgY29udmVydGVkIHRvIHRoaXMgdHlwZSBmb3IgdXNlIGluIHRoZSBncmFwaC5cbiAgICogQHBhcmFtIHNpZGVQYWNrZXROYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBpbnB1dCBzaWRlIHBhY2tldCB0byBzZW5kIGRhdGFcbiAgICogICAgIGludG8uXG4gICAqL1xuICBhZGRQcm90b1RvSW5wdXRTaWRlUGFja2V0KFxuICAgICAgZGF0YTogVWludDhBcnJheSwgcHJvdG9UeXBlOiBzdHJpbmcsIHNpZGVQYWNrZXROYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLndyYXBTdHJpbmdQdHIoc2lkZVBhY2tldE5hbWUsIChzaWRlUGFja2V0TmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndyYXBTdHJpbmdQdHIocHJvdG9UeXBlLCAocHJvdG9UeXBlUHRyOiBudW1iZXIpID0+IHtcbiAgICAgICAgLy8gRGVlcC1jb3B5IHByb3RvIGRhdGEgaW50byBXYXNtIGhlYXBcbiAgICAgICAgY29uc3QgZGF0YVB0ciA9IHRoaXMud2FzbU1vZHVsZS5fbWFsbG9jKGRhdGEubGVuZ3RoKTtcbiAgICAgICAgLy8gVE9ETzogRW5zdXJlIHRoaXMgaXMgdGhlIGZhc3Rlc3Qgd2F5IHRvIGNvcHkgdGhpcyBkYXRhLlxuICAgICAgICB0aGlzLndhc21Nb2R1bGUuSEVBUFU4LnNldChkYXRhLCBkYXRhUHRyKTtcbiAgICAgICAgdGhpcy53YXNtTW9kdWxlLl9hZGRQcm90b1RvSW5wdXRTaWRlUGFja2V0KFxuICAgICAgICAgICAgZGF0YVB0ciwgZGF0YS5sZW5ndGgsIHByb3RvVHlwZVB0ciwgc2lkZVBhY2tldE5hbWVQdHIpO1xuICAgICAgICB0aGlzLndhc21Nb2R1bGUuX2ZyZWUoZGF0YVB0cik7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGJvb2xlYW4gcGFja2V0IGxpc3RlbmVyIHRvIHRoZSBzcGVjaWZpZWQgb3V0cHV0X3N0cmVhbS5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYiBib29sZWFuXG4gICAqICAgICBkYXRhIGZyb20uXG4gICAqIEBwYXJhbSBjYWxsYmFja0ZjbiBUaGUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBiYWNrIHdpdGggdGhlIGRhdGEsIGFzXG4gICAqICAgICBpdCBpcyByZWNlaXZlZC4gIE5vdGUgdGhhdCB0aGUgZGF0YSBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gZXhpc3QgZm9yIHRoZVxuICAgKiAgICAgZHVyYXRpb24gb2YgdGhlIGNhbGxiYWNrLCBhbmQgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlubGluZSwgc28gaXRcbiAgICogICAgIHNob3VsZCBub3QgcGVyZm9ybSBvdmVybHkgY29tcGxpY2F0ZWQgKG9yIGFueSBhc3luYykgYmVoYXZpb3IuXG4gICAqL1xuICBhdHRhY2hCb29sTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxib29sZWFuPik6IHZvaWQge1xuICAgIC8vIFNldCB1cCBvdXIgVFMgbGlzdGVuZXIgdG8gcmVjZWl2ZSBhbnkgcGFja2V0cyBmb3IgdGhpcyBzdHJlYW0uXG4gICAgdGhpcy5zZXRMaXN0ZW5lcihvdXRwdXRTdHJlYW1OYW1lLCBjYWxsYmFja0Zjbik7XG5cbiAgICAvLyBUZWxsIG91ciBncmFwaCB0byBsaXN0ZW4gZm9yIGJvb2wgcGFja2V0cyBvbiB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLndyYXBTdHJpbmdQdHIob3V0cHV0U3RyZWFtTmFtZSwgKG91dHB1dFN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hdHRhY2hCb29sTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBib29sW10gcGFja2V0IGxpc3RlbmVyIHRvIHRoZSBzcGVjaWZpZWQgb3V0cHV0X3N0cmVhbS5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYlxuICAgKiAgICAgc3RkOjp2ZWN0b3I8Ym9vbD4gZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoQm9vbFZlY3Rvckxpc3RlbmVyKFxuICAgICAgb3V0cHV0U3RyZWFtTmFtZTogc3RyaW5nLCBjYWxsYmFja0ZjbjogU2ltcGxlTGlzdGVuZXI8Ym9vbGVhbltdPik6IHZvaWQge1xuICAgIC8vIFNldCB1cCBvdXIgVFMgbGlzdGVuZXIgdG8gcmVjZWl2ZSBhbnkgcGFja2V0cyBmb3IgdGhpcyBzdHJlYW0uXG4gICAgdGhpcy5zZXRWZWN0b3JMaXN0ZW5lcihvdXRwdXRTdHJlYW1OYW1lLCBjYWxsYmFja0Zjbik7XG5cbiAgICAvLyBUZWxsIG91ciBncmFwaCB0byBsaXN0ZW4gZm9yIHN0ZDo6dmVjdG9yPGJvb2w+IHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoQm9vbFZlY3Rvckxpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWVQdHIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGFuIGludCBwYWNrZXQgbGlzdGVuZXIgdG8gdGhlIHNwZWNpZmllZCBvdXRwdXRfc3RyZWFtLlxuICAgKiBAcGFyYW0gb3V0cHV0U3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggb3V0cHV0IHN0cmVhbSB0byBncmFiIGludFxuICAgKiAgICAgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoSW50TGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxudW1iZXI+KTogdm9pZCB7XG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLnNldExpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWUsIGNhbGxiYWNrRmNuKTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3IgaW50IHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoSW50TGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYW4gaW50W10gcGFja2V0IGxpc3RlbmVyIHRvIHRoZSBzcGVjaWZpZWQgb3V0cHV0X3N0cmVhbS5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYlxuICAgKiAgICAgc3RkOjp2ZWN0b3I8aW50PiBkYXRhIGZyb20uXG4gICAqIEBwYXJhbSBjYWxsYmFja0ZjbiBUaGUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBiYWNrIHdpdGggdGhlIGRhdGEsIGFzXG4gICAqICAgICBpdCBpcyByZWNlaXZlZC4gIE5vdGUgdGhhdCB0aGUgZGF0YSBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gZXhpc3QgZm9yIHRoZVxuICAgKiAgICAgZHVyYXRpb24gb2YgdGhlIGNhbGxiYWNrLCBhbmQgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlubGluZSwgc28gaXRcbiAgICogICAgIHNob3VsZCBub3QgcGVyZm9ybSBvdmVybHkgY29tcGxpY2F0ZWQgKG9yIGFueSBhc3luYykgYmVoYXZpb3IuXG4gICAqL1xuICBhdHRhY2hJbnRWZWN0b3JMaXN0ZW5lcihcbiAgICAgIG91dHB1dFN0cmVhbU5hbWU6IHN0cmluZywgY2FsbGJhY2tGY246IFNpbXBsZUxpc3RlbmVyPG51bWJlcltdPik6IHZvaWQge1xuICAgIC8vIFNldCB1cCBvdXIgVFMgbGlzdGVuZXIgdG8gcmVjZWl2ZSBhbnkgcGFja2V0cyBmb3IgdGhpcyBzdHJlYW0uXG4gICAgdGhpcy5zZXRWZWN0b3JMaXN0ZW5lcihvdXRwdXRTdHJlYW1OYW1lLCBjYWxsYmFja0Zjbik7XG5cbiAgICAvLyBUZWxsIG91ciBncmFwaCB0byBsaXN0ZW4gZm9yIHN0ZDo6dmVjdG9yPGludD4gcGFja2V0cyBvbiB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLndyYXBTdHJpbmdQdHIob3V0cHV0U3RyZWFtTmFtZSwgKG91dHB1dFN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hdHRhY2hJbnRWZWN0b3JMaXN0ZW5lcihvdXRwdXRTdHJlYW1OYW1lUHRyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIGRvdWJsZSBwYWNrZXQgbGlzdGVuZXIgdG8gdGhlIHNwZWNpZmllZCBvdXRwdXRfc3RyZWFtLlxuICAgKiBAcGFyYW0gb3V0cHV0U3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggb3V0cHV0IHN0cmVhbSB0byBncmFiIGRvdWJsZVxuICAgKiAgICAgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoRG91YmxlTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxudW1iZXI+KTogdm9pZCB7XG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLnNldExpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWUsIGNhbGxiYWNrRmNuKTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3IgZG91YmxlIHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoRG91YmxlTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBkb3VibGVbXSBwYWNrZXQgbGlzdGVuZXIgdG8gdGhlIHNwZWNpZmllZCBvdXRwdXRfc3RyZWFtLlxuICAgKiBAcGFyYW0gb3V0cHV0U3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggb3V0cHV0IHN0cmVhbSB0byBncmFiXG4gICAqICAgICBzdGQ6OnZlY3Rvcjxkb3VibGU+IGRhdGEgZnJvbS5cbiAgICogQHBhcmFtIGNhbGxiYWNrRmNuIFRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2l0aCB0aGUgZGF0YSwgYXNcbiAgICogICAgIGl0IGlzIHJlY2VpdmVkLiAgTm90ZSB0aGF0IHRoZSBkYXRhIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBleGlzdCBmb3IgdGhlXG4gICAqICAgICBkdXJhdGlvbiBvZiB0aGUgY2FsbGJhY2ssIGFuZCB0aGUgY2FsbGJhY2sgd2lsbCBiZSBjYWxsZWQgaW5saW5lLCBzbyBpdFxuICAgKiAgICAgc2hvdWxkIG5vdCBwZXJmb3JtIG92ZXJseSBjb21wbGljYXRlZCAob3IgYW55IGFzeW5jKSBiZWhhdmlvci5cbiAgICovXG4gIGF0dGFjaERvdWJsZVZlY3Rvckxpc3RlbmVyKFxuICAgICAgb3V0cHV0U3RyZWFtTmFtZTogc3RyaW5nLCBjYWxsYmFja0ZjbjogU2ltcGxlTGlzdGVuZXI8bnVtYmVyW10+KTogdm9pZCB7XG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLnNldFZlY3Rvckxpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWUsIGNhbGxiYWNrRmNuKTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3Igc3RkOjp2ZWN0b3I8ZG91YmxlPiBwYWNrZXRzIG9uIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMud3JhcFN0cmluZ1B0cihvdXRwdXRTdHJlYW1OYW1lLCAob3V0cHV0U3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2F0dGFjaERvdWJsZVZlY3Rvckxpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWVQdHIpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGEgZmxvYXQgcGFja2V0IGxpc3RlbmVyIHRvIHRoZSBzcGVjaWZpZWQgb3V0cHV0X3N0cmVhbS5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYiBmbG9hdFxuICAgKiAgICAgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoRmxvYXRMaXN0ZW5lcihcbiAgICAgIG91dHB1dFN0cmVhbU5hbWU6IHN0cmluZywgY2FsbGJhY2tGY246IFNpbXBsZUxpc3RlbmVyPG51bWJlcj4pOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgb3VyIFRTIGxpc3RlbmVyIHRvIHJlY2VpdmUgYW55IHBhY2tldHMgZm9yIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMuc2V0TGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZSwgY2FsbGJhY2tGY24pO1xuXG4gICAgLy8gVGVsbCBvdXIgZ3JhcGggdG8gbGlzdGVuIGZvciBmbG9hdCBwYWNrZXRzIG9uIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMud3JhcFN0cmluZ1B0cihvdXRwdXRTdHJlYW1OYW1lLCAob3V0cHV0U3RyZWFtTmFtZVB0cjogbnVtYmVyKSA9PiB7XG4gICAgICB0aGlzLndhc21Nb2R1bGUuX2F0dGFjaEZsb2F0TGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBmbG9hdFtdIHBhY2tldCBsaXN0ZW5lciB0byB0aGUgc3BlY2lmaWVkIG91dHB1dF9zdHJlYW0uXG4gICAqIEBwYXJhbSBvdXRwdXRTdHJlYW1OYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBvdXRwdXQgc3RyZWFtIHRvIGdyYWJcbiAgICogICAgIHN0ZDo6dmVjdG9yPGZsb2F0PiBkYXRhIGZyb20uXG4gICAqIEBwYXJhbSBjYWxsYmFja0ZjbiBUaGUgZnVuY3Rpb24gdGhhdCB3aWxsIGJlIGNhbGxlZCBiYWNrIHdpdGggdGhlIGRhdGEsIGFzXG4gICAqICAgICBpdCBpcyByZWNlaXZlZC4gIE5vdGUgdGhhdCB0aGUgZGF0YSBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gZXhpc3QgZm9yIHRoZVxuICAgKiAgICAgZHVyYXRpb24gb2YgdGhlIGNhbGxiYWNrLCBhbmQgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlubGluZSwgc28gaXRcbiAgICogICAgIHNob3VsZCBub3QgcGVyZm9ybSBvdmVybHkgY29tcGxpY2F0ZWQgKG9yIGFueSBhc3luYykgYmVoYXZpb3IuXG4gICAqL1xuICBhdHRhY2hGbG9hdFZlY3Rvckxpc3RlbmVyKFxuICAgICAgb3V0cHV0U3RyZWFtTmFtZTogc3RyaW5nLCBjYWxsYmFja0ZjbjogU2ltcGxlTGlzdGVuZXI8bnVtYmVyW10+KTogdm9pZCB7XG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLnNldFZlY3Rvckxpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWUsIGNhbGxiYWNrRmNuKTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3Igc3RkOjp2ZWN0b3I8ZmxvYXQ+IHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoRmxvYXRWZWN0b3JMaXN0ZW5lcihvdXRwdXRTdHJlYW1OYW1lUHRyKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRhY2hlcyBhIHN0cmluZyBwYWNrZXQgbGlzdGVuZXIgdG8gdGhlIHNwZWNpZmllZCBvdXRwdXRfc3RyZWFtLlxuICAgKiBAcGFyYW0gb3V0cHV0U3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggb3V0cHV0IHN0cmVhbSB0byBncmFiIHN0cmluZ1xuICAgKiAgICAgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoU3RyaW5nTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxzdHJpbmc+KTogdm9pZCB7XG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbS5cbiAgICB0aGlzLnNldExpc3RlbmVyKG91dHB1dFN0cmVhbU5hbWUsIGNhbGxiYWNrRmNuKTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3Igc3RyaW5nIHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoU3RyaW5nTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBzdHJpbmdbXSBwYWNrZXQgbGlzdGVuZXIgdG8gdGhlIHNwZWNpZmllZCBvdXRwdXRfc3RyZWFtLlxuICAgKiBAcGFyYW0gb3V0cHV0U3RyZWFtTmFtZSBUaGUgbmFtZSBvZiB0aGUgZ3JhcGggb3V0cHV0IHN0cmVhbSB0byBncmFiXG4gICAqICAgICBzdGQ6OnZlY3RvcjxzdGQ6OnN0cmluZz4gZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvIGV4aXN0IGZvciB0aGVcbiAgICogICAgIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZCBpbmxpbmUsIHNvIGl0XG4gICAqICAgICBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpIGJlaGF2aW9yLlxuICAgKi9cbiAgYXR0YWNoU3RyaW5nVmVjdG9yTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxzdHJpbmdbXT4pOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgb3VyIFRTIGxpc3RlbmVyIHRvIHJlY2VpdmUgYW55IHBhY2tldHMgZm9yIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMuc2V0VmVjdG9yTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZSwgY2FsbGJhY2tGY24pO1xuXG4gICAgLy8gVGVsbCBvdXIgZ3JhcGggdG8gbGlzdGVuIGZvciBzdGQ6OnZlY3RvcjxzdHJpbmc+IHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoU3RyaW5nVmVjdG9yTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZVB0cik7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBzZXJpYWxpemVkIHByb3RvIHBhY2tldCBsaXN0ZW5lciB0byB0aGUgc3BlY2lmaWVkIG91dHB1dF9zdHJlYW0uXG4gICAqIEBwYXJhbSBvdXRwdXRTdHJlYW1OYW1lIFRoZSBuYW1lIG9mIHRoZSBncmFwaCBvdXRwdXQgc3RyZWFtIHRvIGdyYWIgYmluYXJ5XG4gICAqICAgICBzZXJpYWxpemVkIHByb3RvIGRhdGEgZnJvbSAoaW4gVWludDhBcnJheSBmb3JtYXQpLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuICBOb3RlIHRoYXQgYnkgZGVmYXVsdCB0aGUgZGF0YSBpcyBvbmx5IGd1YXJhbnRlZWQgdG9cbiAgICogICAgIGV4aXN0IGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIGNhbGxiYWNrLCBhbmQgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkXG4gICAqICAgICBpbmxpbmUsIHNvIGl0IHNob3VsZCBub3QgcGVyZm9ybSBvdmVybHkgY29tcGxpY2F0ZWQgKG9yIGFueSBhc3luYylcbiAgICogICAgIGJlaGF2aW9yLiBJZiB0aGUgcHJvdG8gZGF0YSBuZWVkcyB0byBiZSBhYmxlIHRvIG91dGxpdmUgdGhlIGNhbGwsIHlvdVxuICAgKiAgICAgbWF5IHNldCB0aGUgb3B0aW9uYWwgbWFrZURlZXBDb3B5IHBhcmFtZXRlciB0byB0cnVlLCBvciBjYW4gbWFudWFsbHlcbiAgICogICAgIGRlZXAtY29weSB0aGUgZGF0YSB5b3Vyc2VsZi5cbiAgICogQHBhcmFtIG1ha2VEZWVwQ29weSBPcHRpb25hbCBjb252ZW5pZW5jZSBwYXJhbWV0ZXIgd2hpY2gsIGlmIHNldCB0byB0cnVlLFxuICAgKiAgICAgd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBtZW1vcnkgbWFuYWdlbWVudCBiZWhhdmlvciBhbmQgbWFrZSBhIGRlZXBcbiAgICogICAgIGNvcHkgb2YgdGhlIHVuZGVybHlpbmcgZGF0YSwgcmF0aGVyIHRoYW4ganVzdCByZXR1cm5pbmcgYSB2aWV3IGludG8gdGhlXG4gICAqICAgICBDKystbWFuYWdlZCBtZW1vcnkuIEF0IHRoZSBjb3N0IG9mIGEgZGF0YSBjb3B5LCB0aGlzIGFsbG93cyB0aGVcbiAgICogICAgIHJldHVybmVkIGRhdGEgdG8gb3V0bGl2ZSB0aGUgY2FsbGJhY2sgbGlmZXRpbWUgKGFuZCBpdCB3aWxsIGJlIGNsZWFuZWRcbiAgICogICAgIHVwIGF1dG9tYXRpY2FsbHkgYnkgSlMgZ2FyYmFnZSBjb2xsZWN0aW9uIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGZpbmlzaGVkXG4gICAqICAgICB3aXRoIGl0KS5cbiAgICovXG4gIGF0dGFjaFByb3RvTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxVaW50OEFycmF5PixcbiAgICAgIG1ha2VEZWVwQ29weT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgb3VyIFRTIGxpc3RlbmVyIHRvIHJlY2VpdmUgYW55IHBhY2tldHMgZm9yIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMuc2V0TGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZSwgY2FsbGJhY2tGY24pO1xuXG4gICAgLy8gVGVsbCBvdXIgZ3JhcGggdG8gbGlzdGVuIGZvciBiaW5hcnkgc2VyaWFsaXplZCBwcm90byBkYXRhIHBhY2tldHMgb24gdGhpc1xuICAgIC8vIHN0cmVhbS5cbiAgICB0aGlzLndyYXBTdHJpbmdQdHIob3V0cHV0U3RyZWFtTmFtZSwgKG91dHB1dFN0cmVhbU5hbWVQdHI6IG51bWJlcikgPT4ge1xuICAgICAgdGhpcy53YXNtTW9kdWxlLl9hdHRhY2hQcm90b0xpc3RlbmVyKFxuICAgICAgICAgIG91dHB1dFN0cmVhbU5hbWVQdHIsIG1ha2VEZWVwQ29weSB8fCBmYWxzZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXR0YWNoZXMgYSBsaXN0ZW5lciBmb3IgYW4gYXJyYXkgb2Ygc2VyaWFsaXplZCBwcm90byBwYWNrZXRzIHRvIHRoZVxuICAgKiBzcGVjaWZpZWQgb3V0cHV0X3N0cmVhbS5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYiBhXG4gICAqICAgICB2ZWN0b3Igb2YgYmluYXJ5IHNlcmlhbGl6ZWQgcHJvdG8gZGF0YSBmcm9tIChpbiBVaW50OEFycmF5W10gZm9ybWF0KS5cbiAgICogQHBhcmFtIGNhbGxiYWNrRmNuIFRoZSBmdW5jdGlvbiB0aGF0IHdpbGwgYmUgY2FsbGVkIGJhY2sgd2l0aCB0aGUgZGF0YSwgYXNcbiAgICogICAgIGl0IGlzIHJlY2VpdmVkLiAgTm90ZSB0aGF0IGJ5IGRlZmF1bHQgdGhlIGRhdGEgaXMgb25seSBndWFyYW50ZWVkIHRvXG4gICAqICAgICBleGlzdCBmb3IgdGhlIGR1cmF0aW9uIG9mIHRoZSBjYWxsYmFjaywgYW5kIHRoZSBjYWxsYmFjayB3aWxsIGJlIGNhbGxlZFxuICAgKiAgICAgaW5saW5lLCBzbyBpdCBzaG91bGQgbm90IHBlcmZvcm0gb3Zlcmx5IGNvbXBsaWNhdGVkIChvciBhbnkgYXN5bmMpXG4gICAqICAgICBiZWhhdmlvci4gSWYgdGhlIHByb3RvIGRhdGEgbmVlZHMgdG8gYmUgYWJsZSB0byBvdXRsaXZlIHRoZSBjYWxsLCB5b3VcbiAgICogICAgIG1heSBzZXQgdGhlIG9wdGlvbmFsIG1ha2VEZWVwQ29weSBwYXJhbWV0ZXIgdG8gdHJ1ZSwgb3IgY2FuIG1hbnVhbGx5XG4gICAqICAgICBkZWVwLWNvcHkgdGhlIGRhdGEgeW91cnNlbGYuXG4gICAqIEBwYXJhbSBtYWtlRGVlcENvcHkgT3B0aW9uYWwgY29udmVuaWVuY2UgcGFyYW1ldGVyIHdoaWNoLCBpZiBzZXQgdG8gdHJ1ZSxcbiAgICogICAgIHdpbGwgb3ZlcnJpZGUgdGhlIGRlZmF1bHQgbWVtb3J5IG1hbmFnZW1lbnQgYmVoYXZpb3IgYW5kIG1ha2UgYSBkZWVwXG4gICAqICAgICBjb3B5IG9mIHRoZSB1bmRlcmx5aW5nIGRhdGEsIHJhdGhlciB0aGFuIGp1c3QgcmV0dXJuaW5nIGEgdmlldyBpbnRvIHRoZVxuICAgKiAgICAgQysrLW1hbmFnZWQgbWVtb3J5LiBBdCB0aGUgY29zdCBvZiBhIGRhdGEgY29weSwgdGhpcyBhbGxvd3MgdGhlXG4gICAqICAgICByZXR1cm5lZCBkYXRhIHRvIG91dGxpdmUgdGhlIGNhbGxiYWNrIGxpZmV0aW1lIChhbmQgaXQgd2lsbCBiZSBjbGVhbmVkXG4gICAqICAgICB1cCBhdXRvbWF0aWNhbGx5IGJ5IEpTIGdhcmJhZ2UgY29sbGVjdGlvbiB3aGVuZXZlciB0aGUgdXNlciBpcyBmaW5pc2hlZFxuICAgKiAgICAgd2l0aCBpdCkuXG4gICAqL1xuICBhdHRhY2hQcm90b1ZlY3Rvckxpc3RlbmVyKFxuICAgICAgb3V0cHV0U3RyZWFtTmFtZTogc3RyaW5nLCBjYWxsYmFja0ZjbjogU2ltcGxlTGlzdGVuZXI8VWludDhBcnJheVtdPixcbiAgICAgIG1ha2VEZWVwQ29weT86IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvLyBTZXQgdXAgb3VyIFRTIGxpc3RlbmVyIHRvIHJlY2VpdmUgYW55IHBhY2tldHMgZm9yIHRoaXMgc3RyZWFtLlxuICAgIHRoaXMuc2V0VmVjdG9yTGlzdGVuZXIob3V0cHV0U3RyZWFtTmFtZSwgY2FsbGJhY2tGY24pO1xuXG4gICAgLy8gVGVsbCBvdXIgZ3JhcGggdG8gbGlzdGVuIGZvciBhIHZlY3RvciBvZiBiaW5hcnkgc2VyaWFsaXplZCBwcm90byBwYWNrZXRzXG4gICAgLy8gb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoUHJvdG9WZWN0b3JMaXN0ZW5lcihcbiAgICAgICAgICBvdXRwdXRTdHJlYW1OYW1lUHRyLCBtYWtlRGVlcENvcHkgfHwgZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEF0dGFjaGVzIGFuIGF1ZGlvIHBhY2tldCBsaXN0ZW5lciB0byB0aGUgc3BlY2lmaWVkIG91dHB1dF9zdHJlYW0sIHRvIGJlXG4gICAqIGdpdmVuIGEgRmxvYXQzMkFycmF5IGFzIG91dHB1dC5cbiAgICogQHBhcmFtIG91dHB1dFN0cmVhbU5hbWUgVGhlIG5hbWUgb2YgdGhlIGdyYXBoIG91dHB1dCBzdHJlYW0gdG8gZ3JhYiBhdWRpb1xuICAgKiAgICAgZGF0YSBmcm9tLlxuICAgKiBAcGFyYW0gY2FsbGJhY2tGY24gVGhlIGZ1bmN0aW9uIHRoYXQgd2lsbCBiZSBjYWxsZWQgYmFjayB3aXRoIHRoZSBkYXRhLCBhc1xuICAgKiAgICAgaXQgaXMgcmVjZWl2ZWQuIE5vdGUgdGhhdCB0aGUgZGF0YSBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gZXhpc3QgZm9yIHRoZVxuICAgKiAgICAgZHVyYXRpb24gb2YgdGhlIGNhbGxiYWNrLCBhbmQgdGhlIGNhbGxiYWNrIHdpbGwgYmUgY2FsbGVkIGlubGluZSwgc28gaXRcbiAgICogICAgIHNob3VsZCBub3QgcGVyZm9ybSBvdmVybHkgY29tcGxpY2F0ZWQgKG9yIGFueSBhc3luYykgYmVoYXZpb3IuIElmIHRoZVxuICAgKiAgICAgYXVkaW8gZGF0YSBuZWVkcyB0byBiZSBhYmxlIHRvIG91dGxpdmUgdGhlIGNhbGwsIHlvdSBtYXkgc2V0IHRoZVxuICAgKiAgICAgb3B0aW9uYWwgbWFrZURlZXBDb3B5IHBhcmFtZXRlciB0byB0cnVlLCBvciBjYW4gbWFudWFsbHkgZGVlcC1jb3B5IHRoZVxuICAgKiAgICAgZGF0YSB5b3Vyc2VsZi5cbiAgICogQHBhcmFtIG1ha2VEZWVwQ29weSBPcHRpb25hbCBjb252ZW5pZW5jZSBwYXJhbWV0ZXIgd2hpY2gsIGlmIHNldCB0byB0cnVlLFxuICAgKiAgICAgd2lsbCBvdmVycmlkZSB0aGUgZGVmYXVsdCBtZW1vcnkgbWFuYWdlbWVudCBiZWhhdmlvciBhbmQgbWFrZSBhIGRlZXBcbiAgICogICAgIGNvcHkgb2YgdGhlIHVuZGVybHlpbmcgZGF0YSwgcmF0aGVyIHRoYW4ganVzdCByZXR1cm5pbmcgYSB2aWV3IGludG8gdGhlXG4gICAqICAgICBDKystbWFuYWdlZCBtZW1vcnkuIEF0IHRoZSBjb3N0IG9mIGEgZGF0YSBjb3B5LCB0aGlzIGFsbG93cyB0aGVcbiAgICogICAgIHJldHVybmVkIGRhdGEgdG8gb3V0bGl2ZSB0aGUgY2FsbGJhY2sgbGlmZXRpbWUgKGFuZCBpdCB3aWxsIGJlIGNsZWFuZWRcbiAgICogICAgIHVwIGF1dG9tYXRpY2FsbHkgYnkgSlMgZ2FyYmFnZSBjb2xsZWN0aW9uIHdoZW5ldmVyIHRoZSB1c2VyIGlzIGZpbmlzaGVkXG4gICAqICAgICB3aXRoIGl0KS5cbiAgICovXG4gIGF0dGFjaEF1ZGlvTGlzdGVuZXIoXG4gICAgICBvdXRwdXRTdHJlYW1OYW1lOiBzdHJpbmcsIGNhbGxiYWNrRmNuOiBTaW1wbGVMaXN0ZW5lcjxGbG9hdDMyQXJyYXk+LFxuICAgICAgbWFrZURlZXBDb3B5PzogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdGhpcy53YXNtTW9kdWxlLl9hdHRhY2hBdWRpb0xpc3RlbmVyKSB7XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ0F0dGVtcHRpbmcgdG8gdXNlIGF0dGFjaEF1ZGlvTGlzdGVuZXIgd2l0aG91dCBzdXBwb3J0IGZvciAnICtcbiAgICAgICAgICAnb3V0cHV0IGF1ZGlvLiBJcyBidWlsZCBkZXAgXCI6Z2xfZ3JhcGhfcnVubmVyX2F1ZGlvX291dFwiIG1pc3Npbmc/Jyk7XG4gICAgfVxuXG4gICAgLy8gU2V0IHVwIG91ciBUUyBsaXN0ZW5lciB0byByZWNlaXZlIGFueSBwYWNrZXRzIGZvciB0aGlzIHN0cmVhbSwgYW5kXG4gICAgLy8gYWRkaXRpb25hbGx5IHJlZm9ybWF0IG91ciBVaW50OEFycmF5IGludG8gYSBGbG9hdDMyQXJyYXkgZm9yIHRoZSB1c2VyLlxuICAgIHRoaXMuc2V0TGlzdGVuZXI8VWludDhBcnJheT4ob3V0cHV0U3RyZWFtTmFtZSwgKGRhdGEsIHRpbWVzdGFtcCkgPT4ge1xuICAgICAgLy8gU2hvdWxkIGJlIHZlcnkgZmFzdFxuICAgICAgY29uc3QgZmxvYXRBcnJheSA9XG4gICAgICAgICAgbmV3IEZsb2F0MzJBcnJheShkYXRhLmJ1ZmZlciwgZGF0YS5ieXRlT2Zmc2V0LCBkYXRhLmxlbmd0aCAvIDQpO1xuICAgICAgY2FsbGJhY2tGY24oZmxvYXRBcnJheSwgdGltZXN0YW1wKTtcbiAgICB9KTtcblxuICAgIC8vIFRlbGwgb3VyIGdyYXBoIHRvIGxpc3RlbiBmb3Igc3RyaW5nIHBhY2tldHMgb24gdGhpcyBzdHJlYW0uXG4gICAgdGhpcy53cmFwU3RyaW5nUHRyKG91dHB1dFN0cmVhbU5hbWUsIChvdXRwdXRTdHJlYW1OYW1lUHRyOiBudW1iZXIpID0+IHtcbiAgICAgIHRoaXMud2FzbU1vZHVsZS5fYXR0YWNoQXVkaW9MaXN0ZW5lcihcbiAgICAgICAgICBvdXRwdXRTdHJlYW1OYW1lUHRyLCBtYWtlRGVlcENvcHkgfHwgZmFsc2UpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhbGwgcXVldWVkLXVwIHBhY2tldHMgdG8gYmUgcHVzaGVkIHRocm91Z2ggdGhlIE1lZGlhUGlwZSBncmFwaCBhc1xuICAgKiBmYXIgYXMgcG9zc2libGUsIHBlcmZvcm1pbmcgYWxsIHByb2Nlc3NpbmcgdW50aWwgbm8gbW9yZSBwcm9jZXNzaW5nIGNhbiBiZVxuICAgKiBkb25lLlxuICAgKi9cbiAgZmluaXNoUHJvY2Vzc2luZygpOiB2b2lkIHtcbiAgICB0aGlzLndhc21Nb2R1bGUuX3dhaXRVbnRpbElkbGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIGlucHV0IHN0cmVhbXMgYW5kIGFsbCBjYWxjdWxhdG9ycyBmb3IgdGhpcyBncmFwaCBhbmQgZnJlZXMgdXBcbiAgICogYW55IEMrKyByZXNvdXJjZXMuIFRoZSBncmFwaCB3aWxsIG5vdCBiZSB1c2FibGUgb25jZSBjbG9zZWQuXG4gICAqL1xuICBjbG9zZUdyYXBoKCk6IHZvaWQge1xuICAgIHRoaXMud2FzbU1vZHVsZS5fY2xvc2VHcmFwaCgpO1xuICAgIHRoaXMud2FzbU1vZHVsZS5zaW1wbGVMaXN0ZW5lcnMgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy53YXNtTW9kdWxlLmVtcHR5UGFja2V0TGlzdGVuZXJzID0gdW5kZWZpbmVkO1xuICB9XG59XG5cbi8vIFF1aWNrIHByaXZhdGUgaGVscGVyIHRvIHJ1biB0aGUgZ2l2ZW4gc2NyaXB0IHNhZmVseVxuYXN5bmMgZnVuY3Rpb24gcnVuU2NyaXB0KHNjcmlwdFVybDogc3RyaW5nKSB7XG4gIGlmICh0eXBlb2YgaW1wb3J0U2NyaXB0cyA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIGltcG9ydFNjcmlwdHMoc2NyaXB0VXJsLnRvU3RyaW5nKCkpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC5zZXRBdHRyaWJ1dGUoJ3NyYycsIHNjcmlwdFVybCk7XG4gICAgc2NyaXB0LnNldEF0dHJpYnV0ZSgnY3Jvc3NvcmlnaW4nLCAnYW5vbnltb3VzJyk7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlKSA9PiB7XG4gICAgICBzY3JpcHQuYWRkRXZlbnRMaXN0ZW5lcignbG9hZCcsICgpID0+IHtcbiAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgfSwgZmFsc2UpO1xuICAgICAgc2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2Vycm9yJywgKCkgPT4ge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICB9LCBmYWxzZSk7XG4gICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHNjcmlwdCk7XG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBIZWxwZXIgdHlwZSBtYWNybyBmb3IgdXNlIHdpdGggY3JlYXRlTWVkaWFQaXBlTGliLiBBbGxvd3MgdXMgdG8gZWFzaWx5IGluZmVyXG4gKiB0aGUgdHlwZSBvZiBhIG1peGluLWV4dGVuZGVkIEdyYXBoUnVubmVyLiBFeGFtcGxlIHVzYWdlOlxuICogY29uc3QgR3JhcGhSdW5uZXJDb25zdHJ1Y3RvciA9XG4gKiAgICAgU3VwcG9ydEltYWdlKFN1cHBvcnRTZXJpYWxpemF0aW9uKEdyYXBoUnVubmVyKSk7XG4gKiBsZXQgbWVkaWFQaXBlOiBSZXR1cm5UeXBlPHR5cGVvZiBHcmFwaFJ1bm5lckNvbnN0cnVjdG9yPjtcbiAqIC4uLlxuICogbWVkaWFQaXBlID0gYXdhaXQgY3JlYXRlTWVkaWFQaXBlTGliKEdyYXBoUnVubmVyQ29uc3RydWN0b3IsIC4uLik7XG4gKi9cbi8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1hbnlcbmV4cG9ydCB0eXBlIFJldHVyblR5cGU8VD4gPSBUIGV4dGVuZHMgKC4uLmFyZ3M6IHVua25vd25bXSkgPT4gaW5mZXIgUiA/IFIgOiBhbnk7XG5cbi8qKlxuICogR2xvYmFsIGZ1bmN0aW9uIHRvIGluaXRpYWxpemUgV2FzbSBibG9iIGFuZCBsb2FkIHJ1bnRpbWUgYXNzZXRzIGZvciBhXG4gKiAgICAgc3BlY2lhbGl6ZWQgTWVkaWFQaXBlIGxpYnJhcnkuIFRoaXMgYWxsb3dzIHVzIHRvIGNyZWF0ZSBhIHJlcXVlc3RlZFxuICogICAgIHN1YmNsYXNzIGluaGVyaXRpbmcgZnJvbSBHcmFwaFJ1bm5lci5cbiAqIEBwYXJhbSBjb25zdHJ1Y3RvckZjbiBUaGUgbmFtZSBvZiB0aGUgY2xhc3MgdG8gaW5zdGFudGlhdGUgdmlhIFwibmV3XCIuXG4gKiBAcGFyYW0gd2FzbUxvYWRlclNjcmlwdCBVcmwgZm9yIHRoZSB3YXNtLXJ1bm5lciBzY3JpcHQ7IHByb2R1Y2VkIGJ5IHRoZSBidWlsZFxuICogICAgIHByb2Nlc3MuXG4gKiBAcGFyYW0gYXNzZXRMb2FkZXJTY3JpcHQgVXJsIGZvciB0aGUgYXNzZXQtbG9hZGluZyBzY3JpcHQ7IHByb2R1Y2VkIGJ5IHRoZVxuICogICAgIGJ1aWxkIHByb2Nlc3MuXG4gKiBAcGFyYW0gZmlsZUxvY2F0b3IgQSBmdW5jdGlvbiB0byBvdmVycmlkZSB0aGUgZmlsZSBsb2NhdGlvbnMgZm9yIGFzc2V0c1xuICogICAgIGxvYWRlZCBieSB0aGUgTWVkaWFQaXBlIGxpYnJhcnkuXG4gKiBAcmV0dXJuIHByb21pc2UgQSBwcm9taXNlIHdoaWNoIHdpbGwgcmVzb2x2ZSB3aGVuIGluaXRpYWxpemF0aW9uIGhhc1xuICogICAgIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHkuXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBjcmVhdGVNZWRpYVBpcGVMaWI8TGliVHlwZT4oXG4gICAgY29uc3RydWN0b3JGY246IFdhc21NZWRpYVBpcGVDb25zdHJ1Y3RvcjxMaWJUeXBlPixcbiAgICB3YXNtTG9hZGVyU2NyaXB0Pzogc3RyaW5nfG51bGwsXG4gICAgYXNzZXRMb2FkZXJTY3JpcHQ/OiBzdHJpbmd8bnVsbCxcbiAgICBnbENhbnZhcz86IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsLFxuICAgIGZpbGVMb2NhdG9yPzogRmlsZUxvY2F0b3IpOiBQcm9taXNlPExpYlR5cGU+IHtcbiAgY29uc3Qgc2NyaXB0cyA9IFtdO1xuICAvLyBSdW4gd2FzbS1sb2FkZXIgc2NyaXB0IGhlcmVcbiAgaWYgKHdhc21Mb2FkZXJTY3JpcHQpIHtcbiAgICBzY3JpcHRzLnB1c2god2FzbUxvYWRlclNjcmlwdCk7XG4gIH1cbiAgLy8gUnVuIGFzc2V0LWxvYWRlciBzY3JpcHQgaGVyZVxuICBpZiAoYXNzZXRMb2FkZXJTY3JpcHQpIHtcbiAgICBzY3JpcHRzLnB1c2goYXNzZXRMb2FkZXJTY3JpcHQpO1xuICB9XG4gIC8vIExvYWQgc2NyaXB0cyBpbiBwYXJhbGxlbCwgYnJvd3NlciB3aWxsIGV4ZWN1dGUgdGhlbSBpbiBzZXF1ZW5jZS5cbiAgaWYgKHNjcmlwdHMubGVuZ3RoKSB7XG4gICAgYXdhaXQgUHJvbWlzZS5hbGwoc2NyaXB0cy5tYXAocnVuU2NyaXB0KSk7XG4gIH1cbiAgaWYgKCFzZWxmLk1vZHVsZUZhY3RvcnkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01vZHVsZUZhY3Rvcnkgbm90IHNldC4nKTtcbiAgfVxuXG4gIC8vIFVudGlsIGFzc2V0IHNjcmlwdHMgd29yayBuaWNlbHkgd2l0aCBNT0RVTEFSSVpFLCB3aGVuIHdlIGFyZSBnaXZlbiBib3RoXG4gIC8vIHNlbGYuTW9kdWxlIGFuZCBhIGZpbGVMb2NhdG9yLCB3ZSBtYW51YWxseSBtZXJnZSB0aGVtIGludG8gc2VsZi5Nb2R1bGUgYW5kXG4gIC8vIHVzZSB0aGF0LiBUT0RPOiBSZW1vdmUgdGhpcyB3aGVuIGFzc2V0IHNjcmlwdHMgYXJlIGZpeGVkLlxuICBpZiAoc2VsZi5Nb2R1bGUgJiYgZmlsZUxvY2F0b3IpIHtcbiAgICBjb25zdCBtb2R1bGVGaWxlTG9jYXRvciA9IHNlbGYuTW9kdWxlIGFzIEZpbGVMb2NhdG9yO1xuICAgIG1vZHVsZUZpbGVMb2NhdG9yLmxvY2F0ZUZpbGUgPSBmaWxlTG9jYXRvci5sb2NhdGVGaWxlO1xuICAgIGlmIChmaWxlTG9jYXRvci5tYWluU2NyaXB0VXJsT3JCbG9iKSB7XG4gICAgICBtb2R1bGVGaWxlTG9jYXRvci5tYWluU2NyaXB0VXJsT3JCbG9iID0gZmlsZUxvY2F0b3IubWFpblNjcmlwdFVybE9yQmxvYjtcbiAgICB9XG4gIH1cbiAgLy8gVE9ETzogRW5zdXJlIHRoYXQgZmlsZUxvY2F0b3IgaXMgcGFzc2VkIGluIGJ5IGFsbCB1c2Vyc1xuICAvLyBhbmQgbWFrZSBpdCByZXF1aXJlZFxuICBjb25zdCBtb2R1bGUgPVxuICAgICAgYXdhaXQgc2VsZi5Nb2R1bGVGYWN0b3J5KHNlbGYuTW9kdWxlIGFzIEZpbGVMb2NhdG9yIHx8IGZpbGVMb2NhdG9yKTtcbiAgLy8gRG9uJ3QgcmV1c2UgZmFjdG9yeSBvciBtb2R1bGUgc2VlZFxuICBzZWxmLk1vZHVsZUZhY3RvcnkgPSBzZWxmLk1vZHVsZSA9IHVuZGVmaW5lZDtcbiAgcmV0dXJuIG5ldyBjb25zdHJ1Y3RvckZjbihtb2R1bGUsIGdsQ2FudmFzKTtcbn1cblxuLyoqXG4gKiBHbG9iYWwgZnVuY3Rpb24gdG8gaW5pdGlhbGl6ZSBXYXNtIGJsb2IgYW5kIGxvYWQgcnVudGltZSBhc3NldHMgZm9yIGEgZ2VuZXJpY1xuICogICAgIE1lZGlhUGlwZSBsaWJyYXJ5LlxuICogQHBhcmFtIHdhc21Mb2FkZXJTY3JpcHQgVXJsIGZvciB0aGUgd2FzbS1ydW5uZXIgc2NyaXB0OyBwcm9kdWNlZCBieSB0aGUgYnVpbGRcbiAqICAgICBwcm9jZXNzLlxuICogQHBhcmFtIGFzc2V0TG9hZGVyU2NyaXB0IFVybCBmb3IgdGhlIGFzc2V0LWxvYWRpbmcgc2NyaXB0OyBwcm9kdWNlZCBieSB0aGVcbiAqICAgICBidWlsZCBwcm9jZXNzLlxuICogQHBhcmFtIGZpbGVMb2NhdG9yIEEgZnVuY3Rpb24gdG8gb3ZlcnJpZGUgdGhlIGZpbGUgbG9jYXRpb25zIGZvciBhc3NldHNcbiAqICAgICBsb2FkZWQgYnkgdGhlIE1lZGlhUGlwZSBsaWJyYXJ5LlxuICogQHJldHVybiBwcm9taXNlIEEgcHJvbWlzZSB3aGljaCB3aWxsIHJlc29sdmUgd2hlbiBpbml0aWFsaXphdGlvbiBoYXNcbiAqICAgICBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlR3JhcGhSdW5uZXIoXG4gICAgd2FzbUxvYWRlclNjcmlwdD86IHN0cmluZyxcbiAgICBhc3NldExvYWRlclNjcmlwdD86IHN0cmluZyxcbiAgICBnbENhbnZhcz86IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsLFxuICAgIGZpbGVMb2NhdG9yPzogRmlsZUxvY2F0b3IpOiBQcm9taXNlPEdyYXBoUnVubmVyPiB7XG4gIHJldHVybiBjcmVhdGVNZWRpYVBpcGVMaWIoXG4gICAgICBHcmFwaFJ1bm5lciwgd2FzbUxvYWRlclNjcmlwdCwgYXNzZXRMb2FkZXJTY3JpcHQsIGdsQ2FudmFzLFxuICAgICAgZmlsZUxvY2F0b3IpO1xufVxuIl19","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SupportModelResourcesGraphService = void 0;\n/**\n * An implementation of GraphRunner that supports registering model\n * resources to a cache, in the form of a GraphService C++-side. We implement as\n * a proper TS mixin, to allow for effective multiple inheritance. Sample usage:\n * `const GraphRunnerWithModelResourcesLib =\n * SupportModelResourcesGraphService(GraphRunner);`\n */\n// tslint:disable:enforce-name-casing\nfunction SupportModelResourcesGraphService(Base) {\n return class extends Base {\n // tslint:enable:enforce-name-casing\n /**\n * Instructs the graph runner to use the model resource caching graph\n * service for both graph expansion/inintialization, as well as for graph\n * run.\n */\n registerModelResourcesGraphService() {\n this.wasmModule\n ._registerModelResourcesGraphService();\n }\n };\n}\nexports.SupportModelResourcesGraphService = SupportModelResourcesGraphService;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0ZXJfbW9kZWxfcmVzb3VyY2VzX2dyYXBoX3NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvd2ViL2dyYXBoX3J1bm5lci9yZWdpc3Rlcl9tb2RlbF9yZXNvdXJjZXNfZ3JhcGhfc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFrQkE7Ozs7OztHQU1HO0FBQ0gscUNBQXFDO0FBQ3JDLFNBQWdCLGlDQUFpQyxDQUM3QyxJQUFXO0lBQ2IsT0FBTyxLQUFNLFNBQVEsSUFBSTtRQUN2QixvQ0FBb0M7UUFDcEM7Ozs7V0FJRztRQUNILGtDQUFrQztZQUMvQixJQUFJLENBQUMsVUFBMEQ7aUJBQzNELG1DQUFtQyxFQUFFLENBQUM7UUFDN0MsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBZEQsOEVBY0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0dyYXBoUnVubmVyfSBmcm9tICcuL2dyYXBoX3J1bm5lcic7XG5cbi8qKlxuICogV2UgZXh0ZW5kIGZyb20gYSBHcmFwaFJ1bm5lciBjb25zdHJ1Y3Rvci4gVGhpcyBlbnN1cmVzIG91ciBtaXhpbiBoYXNcbiAqIGFjY2VzcyB0byB0aGUgd2FzbU1vZHVsZSwgYW1vbmcgb3RoZXIgdGhpbmdzLiBUaGUgYGFueWAgdHlwZSBpcyByZXF1aXJlZCBmb3JcbiAqIG1peGluIGNvbnN0cnVjdG9ycy5cbiAqL1xuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLWFueVxudHlwZSBMaWJDb25zdHJ1Y3RvciA9IG5ldyAoLi4uYXJnczogYW55W10pID0+IEdyYXBoUnVubmVyO1xuXG4vKipcbiAqIERlY2xhcmF0aW9ucyBmb3IgRW1zY3JpcHRlbidzIFdlYkFzc2VtYmx5IE1vZHVsZSBiZWhhdmlvciwgc28gVFMgY29tcGlsZXJcbiAqIGRvZXNuJ3QgYnJlYWsgb3VyIEpTL0MrKyBicmlkZ2UuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBXYXNtTW9kdWxlUmVnaXN0ZXJNb2RlbFJlc291cmNlcyB7XG4gIF9yZWdpc3Rlck1vZGVsUmVzb3VyY2VzR3JhcGhTZXJ2aWNlOiAoKSA9PiB2b2lkO1xufVxuXG4vKipcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIEdyYXBoUnVubmVyIHRoYXQgc3VwcG9ydHMgcmVnaXN0ZXJpbmcgbW9kZWxcbiAqIHJlc291cmNlcyB0byBhIGNhY2hlLCBpbiB0aGUgZm9ybSBvZiBhIEdyYXBoU2VydmljZSBDKystc2lkZS4gV2UgaW1wbGVtZW50IGFzXG4gKiBhIHByb3BlciBUUyBtaXhpbiwgdG8gYWxsb3cgZm9yIGVmZmVjdGl2ZSBtdWx0aXBsZSBpbmhlcml0YW5jZS4gU2FtcGxlIHVzYWdlOlxuICogYGNvbnN0IEdyYXBoUnVubmVyV2l0aE1vZGVsUmVzb3VyY2VzTGliID1cbiAqICAgICAgU3VwcG9ydE1vZGVsUmVzb3VyY2VzR3JhcGhTZXJ2aWNlKEdyYXBoUnVubmVyKTtgXG4gKi9cbi8vIHRzbGludDpkaXNhYmxlOmVuZm9yY2UtbmFtZS1jYXNpbmdcbmV4cG9ydCBmdW5jdGlvbiBTdXBwb3J0TW9kZWxSZXNvdXJjZXNHcmFwaFNlcnZpY2U8VEJhc2UgZXh0ZW5kcyBMaWJDb25zdHJ1Y3Rvcj4oXG4gICAgQmFzZTogVEJhc2UpIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgLy8gdHNsaW50OmVuYWJsZTplbmZvcmNlLW5hbWUtY2FzaW5nXG4gICAgLyoqXG4gICAgICogSW5zdHJ1Y3RzIHRoZSBncmFwaCBydW5uZXIgdG8gdXNlIHRoZSBtb2RlbCByZXNvdXJjZSBjYWNoaW5nIGdyYXBoXG4gICAgICogc2VydmljZSBmb3IgYm90aCBncmFwaCBleHBhbnNpb24vaW5pbnRpYWxpemF0aW9uLCBhcyB3ZWxsIGFzIGZvciBncmFwaFxuICAgICAqIHJ1bi5cbiAgICAgKi9cbiAgICByZWdpc3Rlck1vZGVsUmVzb3VyY2VzR3JhcGhTZXJ2aWNlKCk6IHZvaWQge1xuICAgICAgKHRoaXMud2FzbU1vZHVsZSBhcyB1bmtub3duIGFzIFdhc21Nb2R1bGVSZWdpc3Rlck1vZGVsUmVzb3VyY2VzKVxuICAgICAgICAgIC5fcmVnaXN0ZXJNb2RlbFJlc291cmNlc0dyYXBoU2VydmljZSgpO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TaskRunner = exports.createTaskRunner = exports.CachedGraphRunner = void 0;\nconst inference_calculator_pb_1 = require(\"../../../calculators/tensor/inference_calculator_pb\");\nconst calculator_pb_1 = require(\"../../../framework/calculator_pb\");\nconst acceleration_pb_1 = require(\"../../../tasks/cc/core/proto/acceleration_pb\");\nconst external_file_pb_1 = require(\"../../../tasks/cc/core/proto/external_file_pb\");\nconst graph_runner_1 = require(\"../../../web/graph_runner/graph_runner\");\nconst register_model_resources_graph_service_1 = require(\"../../../web/graph_runner/register_model_resources_graph_service\");\n// Internal stream names for temporarily keeping memory alive, then freeing it.\nconst FREE_MEMORY_STREAM = 'free_memory';\nconst UNUSED_STREAM_SUFFIX = '_unused_out';\n// tslint:disable-next-line:enforce-name-casing\nconst CachedGraphRunnerType = (0, register_model_resources_graph_service_1.SupportModelResourcesGraphService)(graph_runner_1.GraphRunner);\n// The OSS JS API does not support the builder pattern.\n// tslint:disable:jspb-use-builder-pattern\n/**\n * An implementation of the GraphRunner that exposes the resource graph\n * service.\n */\nclass CachedGraphRunner extends CachedGraphRunnerType {\n}\nexports.CachedGraphRunner = CachedGraphRunner;\n/**\n * Creates a new instance of a Mediapipe Task. Determines if SIMD is\n * supported and loads the relevant WASM binary.\n * @return A fully instantiated instance of `T`.\n */\nasync function createTaskRunner(type, canvas, fileset, options) {\n const fileLocator = {\n locateFile() {\n // The only file loaded with this mechanism is the Wasm binary\n return fileset.wasmBinaryPath.toString();\n }\n };\n const instance = await (0, graph_runner_1.createMediaPipeLib)(type, fileset.wasmLoaderPath, fileset.assetLoaderPath, canvas, fileLocator);\n await instance.setOptions(options);\n return instance;\n}\nexports.createTaskRunner = createTaskRunner;\n/** Base class for all MediaPipe Tasks. */\nclass TaskRunner {\n /**\n * Creates a new instance of a Mediapipe Task. Determines if SIMD is\n * supported and loads the relevant WASM binary.\n * @return A fully instantiated instance of `T`.\n */\n static async createInstance(type, canvas, fileset, options) {\n return createTaskRunner(type, canvas, fileset, options);\n }\n /** @hideconstructor protected */\n constructor(graphRunner) {\n this.graphRunner = graphRunner;\n this.processingErrors = [];\n this.latestOutputTimestamp = 0;\n // Disables the automatic render-to-screen code, which allows for pure\n // CPU processing.\n this.graphRunner.setAutoRenderToScreen(false);\n }\n /**\n * Applies the current set of options, including optionally any base options\n * that have not been processed by the task implementation. The options are\n * applied synchronously unless a `modelAssetPath` is provided. This ensures\n * that for most use cases options are applied directly and immediately affect\n * the next inference.\n *\n * @param options The options for the task.\n * @param loadTfliteModel Whether to load the model specified in\n * `options.baseOptions`.\n */\n applyOptions(options, loadTfliteModel = true) {\n var _a, _b, _c, _d, _e, _f;\n if (loadTfliteModel) {\n const baseOptions = options.baseOptions || {};\n // Validate that exactly one model is configured\n if (((_a = options.baseOptions) === null || _a === void 0 ? void 0 : _a.modelAssetBuffer) &&\n ((_b = options.baseOptions) === null || _b === void 0 ? void 0 : _b.modelAssetPath)) {\n throw new Error('Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer');\n }\n else if (!(((_c = this.baseOptions.getModelAsset()) === null || _c === void 0 ? void 0 : _c.hasFileContent()) ||\n ((_d = this.baseOptions.getModelAsset()) === null || _d === void 0 ? void 0 : _d.hasFileName()) ||\n ((_e = options.baseOptions) === null || _e === void 0 ? void 0 : _e.modelAssetBuffer) ||\n ((_f = options.baseOptions) === null || _f === void 0 ? void 0 : _f.modelAssetPath))) {\n throw new Error('Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set');\n }\n this.setAcceleration(baseOptions);\n if (baseOptions.modelAssetPath) {\n // We don't use `await` here since we want to apply most settings\n // synchronously.\n return fetch(baseOptions.modelAssetPath.toString())\n .then(response => {\n if (!response.ok) {\n throw new Error(`Failed to fetch model: ${baseOptions.modelAssetPath} (${response.status})`);\n }\n else {\n return response.arrayBuffer();\n }\n })\n .then(buffer => {\n try {\n // Try to delete file as we cannot overwite an existing file\n // using our current API.\n this.graphRunner.wasmModule.FS_unlink('/model.dat');\n }\n catch (_a) {\n }\n // TODO: Consider passing the model to the graph as an\n // input side packet as this might reduce copies.\n this.graphRunner.wasmModule.FS_createDataFile('/', 'model.dat', new Uint8Array(buffer), \n /* canRead= */ true, /* canWrite= */ false, \n /* canOwn= */ false);\n this.setExternalFile('/model.dat');\n this.refreshGraph();\n this.onGraphRefreshed();\n });\n }\n else {\n this.setExternalFile(baseOptions.modelAssetBuffer);\n }\n }\n // If there is no model to download, we can apply the setting synchronously.\n this.refreshGraph();\n this.onGraphRefreshed();\n return Promise.resolve();\n }\n /**\n * Callback that gets invoked once a new graph configuration has been\n * applied.\n */\n onGraphRefreshed() { }\n /** Returns the current CalculatorGraphConfig. */\n getCalculatorGraphConfig() {\n let config;\n this.graphRunner.getCalculatorGraphConfig(binaryData => {\n config = calculator_pb_1.CalculatorGraphConfig.deserializeBinary(binaryData);\n });\n if (!config) {\n throw new Error('Failed to retrieve CalculatorGraphConfig');\n }\n return config;\n }\n /**\n * Takes the raw data from a MediaPipe graph, and passes it to C++ to be run\n * over the video stream. Will replace the previously running MediaPipe graph,\n * if there is one.\n * @param graphData The raw MediaPipe graph data, either in binary\n * protobuffer format (.binarypb), or else in raw text format (.pbtxt or\n * .textproto).\n * @param isBinary This should be set to true if the graph is in\n * binary format, and false if it is in human-readable text format.\n */\n setGraph(graphData, isBinary) {\n this.graphRunner.attachErrorListener((code, message) => {\n this.processingErrors.push(new Error(message));\n });\n // Enables use of our model resource caching graph service; we apply this to\n // every MediaPipe graph we run.\n this.graphRunner.registerModelResourcesGraphService();\n this.graphRunner.setGraph(graphData, isBinary);\n this.keepaliveNode = undefined;\n this.handleErrors();\n }\n /**\n * Forces all queued-up packets to be pushed through the MediaPipe graph as\n * far as possible, performing all processing until no more processing can be\n * done.\n */\n finishProcessing() {\n this.graphRunner.finishProcessing();\n this.handleErrors();\n }\n /*\n * Sets the latest output timestamp received from the graph (in ms).\n * Timestamps that are smaller than the currently latest output timestamp are\n * ignored.\n */\n setLatestOutputTimestamp(timestamp) {\n this.latestOutputTimestamp =\n Math.max(this.latestOutputTimestamp, timestamp);\n }\n /**\n * Gets a syncthethic timestamp in ms that can be used to send data to the\n * next packet. The timestamp is one millisecond past the last timestamp\n * received from the graph.\n */\n getSynctheticTimestamp() {\n return this.latestOutputTimestamp + 1;\n }\n /** Throws the error from the error listener if an error was raised. */\n handleErrors() {\n try {\n const errorCount = this.processingErrors.length;\n if (errorCount === 1) {\n // Re-throw error to get a more meaningful stacktrace\n throw new Error(this.processingErrors[0].message);\n }\n else if (errorCount > 1) {\n throw new Error('Encountered multiple errors: ' +\n this.processingErrors.map(e => e.message).join(', '));\n }\n }\n finally {\n this.processingErrors = [];\n }\n }\n setExternalFile(modelAssetPathOrBuffer) {\n const externalFile = this.baseOptions.getModelAsset() || new external_file_pb_1.ExternalFile();\n if (typeof modelAssetPathOrBuffer === 'string') {\n externalFile.setFileName(modelAssetPathOrBuffer);\n externalFile.clearFileContent();\n }\n else if (modelAssetPathOrBuffer instanceof Uint8Array) {\n externalFile.setFileContent(modelAssetPathOrBuffer);\n externalFile.clearFileName();\n }\n this.baseOptions.setModelAsset(externalFile);\n }\n /** Configures the `acceleration` option. */\n setAcceleration(options) {\n let acceleration = this.baseOptions.getAcceleration();\n if (!acceleration) {\n // Create default instance for the initial configuration.\n acceleration = new acceleration_pb_1.Acceleration();\n acceleration.setTflite(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.TfLite());\n }\n if ('delegate' in options) {\n if (options.delegate === 'GPU') {\n acceleration.setGpu(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.Gpu());\n }\n else {\n acceleration.setTflite(new inference_calculator_pb_1.InferenceCalculatorOptions.Delegate.TfLite());\n }\n }\n this.baseOptions.setAcceleration(acceleration);\n }\n /**\n * Adds a node to the graph to temporarily keep certain streams alive.\n * NOTE: To use this call, PassThroughCalculator must be included in your wasm\n * dependencies.\n */\n addKeepaliveNode(graphConfig) {\n this.keepaliveNode = new calculator_pb_1.CalculatorGraphConfig.Node();\n this.keepaliveNode.setCalculator('PassThroughCalculator');\n this.keepaliveNode.addInputStream(FREE_MEMORY_STREAM);\n this.keepaliveNode.addOutputStream(FREE_MEMORY_STREAM + UNUSED_STREAM_SUFFIX);\n graphConfig.addInputStream(FREE_MEMORY_STREAM);\n graphConfig.addNode(this.keepaliveNode);\n }\n /** Adds streams to the keepalive node to be kept alive until callback. */\n keepStreamAlive(streamName) {\n this.keepaliveNode.addInputStream(streamName);\n this.keepaliveNode.addOutputStream(streamName + UNUSED_STREAM_SUFFIX);\n }\n /** Frees any streams being kept alive by the keepStreamAlive callback. */\n freeKeepaliveStreams() {\n this.graphRunner.addBoolToStream(true, FREE_MEMORY_STREAM, this.latestOutputTimestamp);\n }\n /** Closes and cleans up the resources held by this task. */\n close() {\n this.keepaliveNode = undefined;\n this.graphRunner.closeGraph();\n }\n}\nexports.TaskRunner = TaskRunner;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFza19ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvdGFza3Mvd2ViL2NvcmUvdGFza19ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7QUFFSCxpR0FBK0Y7QUFDL0Ysb0VBQXVFO0FBQ3ZFLGtGQUEwRTtBQUUxRSxvRkFBMkU7QUFFM0UseUVBQThIO0FBQzlILDZIQUFtSDtBQUluSCwrRUFBK0U7QUFDL0UsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFDekMsTUFBTSxvQkFBb0IsR0FBRyxhQUFhLENBQUM7QUFFM0MsK0NBQStDO0FBQy9DLE1BQU0scUJBQXFCLEdBQUcsSUFBQSwwRUFBaUMsRUFBQywwQkFBVyxDQUFDLENBQUM7QUFFN0UsdURBQXVEO0FBQ3ZELDBDQUEwQztBQUUxQzs7O0dBR0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHFCQUFxQjtDQUFHO0FBQS9ELDhDQUErRDtBQUUvRDs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGdCQUFnQixDQUNsQyxJQUFpQyxFQUNqQyxNQUF3RCxFQUN4RCxPQUFvQixFQUFFLE9BQTBCO0lBQ2xELE1BQU0sV0FBVyxHQUFnQjtRQUMvQixVQUFVO1lBQ1IsOERBQThEO1lBQzlELE9BQU8sT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUMzQyxDQUFDO0tBQ0YsQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxpQ0FBa0IsRUFDckMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxjQUFjLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxNQUFNLEVBQzdELFdBQVcsQ0FBQyxDQUFDO0lBQ2pCLE1BQU0sUUFBUSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQyxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBaEJELDRDQWdCQztBQUVELDBD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QUVEOzs7O09BSUc7SUFDTyxnQkFBZ0IsQ0FBQyxXQUFrQztRQUMzRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUkscUNBQXFCLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUM5QixrQkFBa0IsR0FBRyxvQkFBb0IsQ0FBQyxDQUFDO1FBQy9DLFdBQVcsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUMvQyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsMEVBQTBFO0lBQ2hFLGVBQWUsQ0FBQyxVQUFrQjtRQUMxQyxJQUFJLENBQUMsYUFBYyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYyxDQUFDLGVBQWUsQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsMEVBQTBFO0lBQ2hFLG9CQUFvQjtRQUM1QixJQUFJLENBQUMsV0FBVyxDQUFDLGVBQWUsQ0FDNUIsSUFBSSxFQUFFLGtCQUFrQixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCw0REFBNEQ7SUFDNUQsS0FBSztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGO0FBbFFELGdDQWtRQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMjIgVGhlIE1lZGlhUGlwZSBBdXRob3JzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0luZmVyZW5jZUNhbGN1bGF0b3JPcHRpb25zfSBmcm9tICcuLi8uLi8uLi9jYWxjdWxhdG9ycy90ZW5zb3IvaW5mZXJlbmNlX2NhbGN1bGF0b3JfcGInO1xuaW1wb3J0IHtDYWxjdWxhdG9yR3JhcGhDb25maWd9IGZyb20gJy4uLy4uLy4uL2ZyYW1ld29yay9jYWxjdWxhdG9yX3BiJztcbmltcG9ydCB7QWNjZWxlcmF0aW9ufSBmcm9tICcuLi8uLi8uLi90YXNrcy9jYy9jb3JlL3Byb3RvL2FjY2VsZXJhdGlvbl9wYic7XG5pbXBvcnQge0Jhc2VPcHRpb25zIGFzIEJhc2VPcHRpb25zUHJvdG99IGZyb20gJy4uLy4uLy4uL3Rhc2tzL2NjL2NvcmUvcHJvdG8vYmFzZV9vcHRpb25zX3BiJztcbmltcG9ydCB7RXh0ZXJuYWxGaWxlfSBmcm9tICcuLi8uLi8uLi90YXNrcy9jYy9jb3JlL3Byb3RvL2V4dGVybmFsX2ZpbGVfcGInO1xuaW1wb3J0IHtCYXNlT3B0aW9ucywgVGFza1J1bm5lck9wdGlvbnN9IGZyb20gJy4uLy4uLy4uL3Rhc2tzL3dlYi9jb3JlL3Rhc2tfcnVubmVyX29wdGlvbnMnO1xuaW1wb3J0IHtjcmVhdGVNZWRpYVBpcGVMaWIsIEZpbGVMb2NhdG9yLCBHcmFwaFJ1bm5lciwgV2FzbU1lZGlhUGlwZUNvbnN0cnVjdG9yfSBmcm9tICcuLi8uLi8uLi93ZWIvZ3JhcGhfcnVubmVyL2dyYXBoX3J1bm5lcic7XG5pbXBvcnQge1N1cHBvcnRNb2RlbFJlc291cmNlc0dyYXBoU2VydmljZX0gZnJvbSAnLi4vLi4vLi4vd2ViL2dyYXBoX3J1bm5lci9yZWdpc3Rlcl9tb2RlbF9yZXNvdXJjZXNfZ3JhcGhfc2VydmljZSc7XG5cbmltcG9ydCB7V2FzbUZpbGVzZXR9IGZyb20gJy4vd2FzbV9maWxlc2V0JztcblxuLy8gSW50ZXJuYWwgc3RyZWFtIG5hbWVzIGZvciB0ZW1wb3JhcmlseSBrZWVwaW5nIG1lbW9yeSBhbGl2ZSwgdGhlbiBmcmVlaW5nIGl0LlxuY29uc3QgRlJFRV9NRU1PUllfU1RSRUFNID0gJ2ZyZWVfbWVtb3J5JztcbmNvbnN0IFVOVVNFRF9TVFJFQU1fU1VGRklYID0gJ191bnVzZWRfb3V0JztcblxuLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmVuZm9yY2UtbmFtZS1jYXNpbmdcbmNvbnN0IENhY2hlZEdyYXBoUnVubmVyVHlwZSA9IFN1cHBvcnRNb2RlbFJlc291cmNlc0dyYXBoU2VydmljZShHcmFwaFJ1bm5lcik7XG5cbi8vIFRoZSBPU1MgSlMgQVBJIGRvZXMgbm90IHN1cHBvcnQgdGhlIGJ1aWxkZXIgcGF0dGVybi5cbi8vIHRzbGludDpkaXNhYmxlOmpzcGItdXNlLWJ1aWxkZXItcGF0dGVyblxuXG4vKipcbiAqIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSBHcmFwaFJ1bm5lciB0aGF0IGV4cG9zZXMgdGhlIHJlc291cmNlIGdyYXBoXG4gKiBzZXJ2aWNlLlxuICovXG5leHBvcnQgY2xhc3MgQ2FjaGVkR3JhcGhSdW5uZXIgZXh0ZW5kcyBDYWNoZWRHcmFwaFJ1bm5lclR5cGUge31cblxuLyoqXG4gKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIGEgTWVkaWFwaXBlIFRhc2suIERldGVybWluZXMgaWYgU0lNRCBpc1xuICogc3VwcG9ydGVkIGFuZCBsb2FkcyB0aGUgcmVsZXZhbnQgV0FTTSBiaW5hcnkuXG4gKiBAcmV0dXJuIEEgZnVsbHkgaW5zdGFudGlhdGVkIGluc3RhbmNlIG9mIGBUYC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZVRhc2tSdW5uZXI8VCBleHRlbmRzIFRhc2tSdW5uZXI+KFxuICAgIHR5cGU6IFdhc21NZWRpYVBpcGVDb25zdHJ1Y3RvcjxUPixcbiAgICBjYW52YXM6IEhUTUxDYW52YXNFbGVtZW50fE9mZnNjcmVlbkNhbnZhc3xudWxsfHVuZGVmaW5lZCxcbiAgICBmaWxlc2V0OiBXYXNtRmlsZXNldCwgb3B0aW9uczogVGFza1J1bm5lck9wdGlvbnMpOiBQcm9taXNlPFQ+IHtcbiAgY29uc3QgZmlsZUxvY2F0b3I6IEZpbGVMb2NhdG9yID0ge1xuICAgIGxvY2F0ZUZpbGUoKSB7XG4gICAgICAvLyBUaGUgb25seSBmaWxlIGxvYWRlZCB3aXRoIHRoaXMgbWVjaGFuaXNtIGlzIHRoZSBXYXNtIGJpbmFyeVxuICAgICAgcmV0dXJuIGZpbGVzZXQud2FzbUJpbmFyeVBhdGgudG9TdHJpbmcoKTtcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgaW5zdGFuY2UgPSBhd2FpdCBjcmVhdGVNZWRpYVBpcGVMaWIoXG4gICAgICB0eXBlLCBmaWxlc2V0Lndhc21Mb2FkZXJQYXRoLCBmaWxlc2V0LmFzc2V0TG9hZGVyUGF0aCwgY2FudmFzLFxuICAgICAgZmlsZUxvY2F0b3IpO1xuICBhd2FpdCBpbnN0YW5jZS5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICByZXR1cm4gaW5zdGFuY2U7XG59XG5cbi8qKiBCYXNlIGNsYXNzIGZvciBhbGwgTWVkaWFQaXBlIFRhc2tzLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFRhc2tSdW5uZXIge1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYmFzZU9wdGlvbnM6IEJhc2VPcHRpb25zUHJvdG87XG4gIHByaXZhdGUgcHJvY2Vzc2luZ0Vycm9yczogRXJyb3JbXSA9IFtdO1xuICBwcml2YXRlIGxhdGVzdE91dHB1dFRpbWVzdGFtcCA9IDA7XG4gIHByaXZhdGUga2VlcGFsaXZlTm9kZT86IENhbGN1bGF0b3JHcmFwaENvbmZpZy5Ob2RlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgbmV3IGluc3RhbmNlIG9mIGEgTWVkaWFwaXBlIFRhc2suIERldGVybWluZXMgaWYgU0lNRCBpc1xuICAgKiBzdXBwb3J0ZWQgYW5kIGxvYWRzIHRoZSByZWxldmFudCBXQVNNIGJpbmFyeS5cbiAgICogQHJldHVybiBBIGZ1bGx5IGluc3RhbnRpYXRlZCBpbnN0YW5jZSBvZiBgVGAuXG4gICAqL1xuICBwcm90ZWN0ZWQgc3RhdGljIGFzeW5jIGNyZWF0ZUluc3RhbmNlPFQgZXh0ZW5kcyBUYXNrUnVubmVyPihcbiAgICAgIHR5cGU6IFdhc21NZWRpYVBpcGVDb25zdHJ1Y3RvcjxUPixcbiAgICAgIGNhbnZhczogSFRNTENhbnZhc0VsZW1lbnR8T2Zmc2NyZWVuQ2FudmFzfG51bGx8dW5kZWZpbmVkLFxuICAgICAgZmlsZXNldDogV2FzbUZpbGVzZXQsIG9wdGlvbnM6IFRhc2tSdW5uZXJPcHRpb25zKTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIGNyZWF0ZVRhc2tSdW5uZXIodHlwZSwgY2FudmFzLCBmaWxlc2V0LCBvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBAaGlkZWNvbnN0cnVjdG9yIHByb3RlY3RlZCAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcmVhZG9ubHkgZ3JhcGhSdW5uZXI6IENhY2hlZEdyYXBoUnVubmVyKSB7XG4gICAgLy8gRGlzYWJsZXMgdGhlIGF1dG9tYXRpYyByZW5kZXItdG8tc2NyZWVuIGNvZGUsIHdoaWNoIGFsbG93cyBmb3IgcHVyZVxuICAgIC8vIENQVSBwcm9jZXNzaW5nLlxuICAgIHRoaXMuZ3JhcGhSdW5uZXIuc2V0QXV0b1JlbmRlclRvU2NyZWVuKGZhbHNlKTtcbiAgfVxuXG4gIC8qKiBDb25maWd1cmVzIHRoZSB0YXNrIHdpdGggY3VzdG9tIG9wdGlvbnMuICovXG4gIGFic3RyYWN0IHNldE9wdGlvbnMob3B0aW9uczogVGFza1J1bm5lck9wdGlvbnMpOiBQcm9taXNlPHZvaWQ+O1xuXG4gIC8qKlxuICAgKiBBcHBsaWVzIHRoZSBjdXJyZW50IHNldCBvZiBvcHRpb25zLCBpbmNsdWRpbmcgb3B0aW9uYWxseSBhbnkgYmFzZSBvcHRpb25zXG4gICAqIHRoYXQgaGF2ZSBub3QgYmVlbiBwcm9jZXNzZWQgYnkgdGhlIHRhc2sgaW1wbGVtZW50YXRpb24uIFRoZSBvcHRpb25zIGFyZVxuICAgKiBhcHBsaWVkIHN5bmNocm9ub3VzbHkgdW5sZXNzIGEgYG1vZGVsQXNzZXRQYXRoYCBpcyBwcm92aWRlZC4gVGhpcyBlbnN1cmVzXG4gICAqIHRoYXQgZm9yIG1vc3QgdXNlIGNhc2VzIG9wdGlvbnMgYXJlIGFwcGxpZWQgZGlyZWN0bHkgYW5kIGltbWVkaWF0ZWx5IGFmZmVjdFxuICAgKiB0aGUgbmV4dCBpbmZlcmVuY2UuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciB0aGUgdGFzay5cbiAgICogQHBhcmFtIGxvYWRUZmxpdGVNb2RlbCBXaGV0aGVyIHRvIGxvYWQgdGhlIG1vZGVsIHNwZWNpZmllZCBpblxuICAgKiAgICAgYG9wdGlvbnMuYmFzZU9wdGlvbnNgLlxuICAgKi9cbiAgcHJvdGVjdGVkIGFwcGx5T3B0aW9ucyhvcHRpb25zOiBUYXNrUnVubmVyT3B0aW9ucywgbG9hZFRmbGl0ZU1vZGVsID0gdHJ1ZSk6XG4gICAgICBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAobG9hZFRmbGl0ZU1vZGVsKSB7XG4gICAgICBjb25zdCBiYXNlT3B0aW9uczogQmFzZU9wdGlvbnMgPSBvcHRpb25zLmJhc2VPcHRpb25zIHx8IHt9O1xuXG4gICAgICAvLyBWYWxpZGF0ZSB0aGF0IGV4YWN0bHkgb25lIG1vZGVsIGlzIGNvbmZpZ3VyZWRcbiAgICAgIGlmIChvcHRpb25zLmJhc2VPcHRpb25zPy5tb2RlbEFzc2V0QnVmZmVyICYmXG4gICAgICAgICAgb3B0aW9ucy5iYXNlT3B0aW9ucz8ubW9kZWxBc3NldFBhdGgpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgJ0Nhbm5vdCBzZXQgYm90aCBiYXNlT3B0aW9ucy5tb2RlbEFzc2V0UGF0aCBhbmQgYmFzZU9wdGlvbnMubW9kZWxBc3NldEJ1ZmZlcicpO1xuICAgICAgfSBlbHNlIGlmICghKHRoaXMuYmFzZU9wdGlvbnMuZ2V0TW9kZWxBc3NldCgpPy5oYXNGaWxlQ29udGVudCgpIHx8XG4gICAgICAgICAgICAgICAgICAgdGhpcy5iYXNlT3B0aW9ucy5nZXRNb2RlbEFzc2V0KCk/Lmhhc0ZpbGVOYW1lKCkgfHxcbiAgICAgICAgICAgICAgICAgICBvcHRpb25zLmJhc2VPcHRpb25zPy5tb2RlbEFzc2V0QnVmZmVyIHx8XG4gICAgICAgICAgICAgICAgICAgb3B0aW9ucy5iYXNlT3B0aW9ucz8ubW9kZWxBc3NldFBhdGgpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICdFaXRoZXIgYmFzZU9wdGlvbnMubW9kZWxBc3NldFBhdGggb3IgYmFzZU9wdGlvbnMubW9kZWxBc3NldEJ1ZmZlciBtdXN0IGJlIHNldCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldEFjY2VsZXJhdGlvbihiYXNlT3B0aW9ucyk7XG4gICAgICBpZiAoYmFzZU9wdGlvbnMubW9kZWxBc3NldFBhdGgpIHtcbiAgICAgICAgLy8gV2UgZG9uJ3QgdXNlIGBhd2FpdGAgaGVyZSBzaW5jZSB3ZSB3YW50IHRvIGFwcGx5IG1vc3Qgc2V0dGluZ3NcbiAgICAgICAgLy8gc3luY2hyb25vdXNseS5cbiAgICAgICAgcmV0dXJuIGZldGNoKGJhc2VPcHRpb25zLm1vZGVsQXNzZXRQYXRoLnRvU3RyaW5nKCkpXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiB7XG4gICAgICAgICAgICAgIGlmICghcmVzcG9uc2Uub2spIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZhaWxlZCB0byBmZXRjaCBtb2RlbDogJHtcbiAgICAgICAgICAgICAgICAgICAgYmFzZU9wdGlvbnMubW9kZWxBc3NldFBhdGh9ICgke3Jlc3BvbnNlLnN0YXR1c30pYCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJlc3BvbnNlLmFycmF5QnVmZmVyKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAudGhlbihidWZmZXIgPT4ge1xuICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgIC8vIFRyeSB0byBkZWxldGUgZmlsZSBhcyB3ZSBjYW5ub3Qgb3ZlcndpdGUgYW4gZXhpc3RpbmcgZmlsZVxuICAgICAgICAgICAgICAgIC8vIHVzaW5nIG91ciBjdXJyZW50IEFQSS5cbiAgICAgICAgICAgICAgICB0aGlzLmdyYXBoUnVubmVyLndhc21Nb2R1bGUuRlNfdW5saW5rKCcvbW9kZWwuZGF0Jyk7XG4gICAgICAgICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIC8vIFRPRE86IENvbnNpZGVyIHBhc3NpbmcgdGhlIG1vZGVsIHRvIHRoZSBncmFwaCBhcyBhblxuICAgICAgICAgICAgICAvLyBpbnB1dCBzaWRlIHBhY2tldCBhcyB0aGlzIG1pZ2h0IHJlZHVjZSBjb3BpZXMuXG4gICAgICAgICAgICAgIHRoaXMuZ3JhcGhSdW5uZXIud2FzbU1vZHVsZS5GU19jcmVhdGVEYXRhRmlsZShcbiAgICAgICAgICAgICAgICAgICcvJywgJ21vZGVsLmRhdCcsIG5ldyBVaW50OEFycmF5KGJ1ZmZlciksXG4gICAgICAgICAgICAgICAgICAvKiBjYW5SZWFkPSAqLyB0cnVlLCAvKiBjYW5Xcml0ZT0gKi8gZmFsc2UsXG4gICAgICAgICAgICAgICAgICAvKiBjYW5Pd249ICovIGZhbHNlKTtcbiAgICAgICAgICAgICAgdGhpcy5zZXRFeHRlcm5hbEZpbGUoJy9tb2RlbC5kYXQnKTtcbiAgICAgICAgICAgICAgdGhpcy5yZWZyZXNoR3JhcGgoKTtcbiAgICAgICAgICAgICAgdGhpcy5vbkdyYXBoUmVmcmVzaGVkKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2V0RXh0ZXJuYWxGaWxlKGJhc2VPcHRpb25zLm1vZGVsQXNzZXRCdWZmZXIpO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIElmIHRoZXJlIGlzIG5vIG1vZGVsIHRvIGRvd25sb2FkLCB3ZSBjYW4gYXBwbHkgdGhlIHNldHRpbmcgc3luY2hyb25vdXNseS5cbiAgICB0aGlzLnJlZnJlc2hHcmFwaCgpO1xuICAgIHRoaXMub25HcmFwaFJlZnJlc2hlZCgpO1xuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxuXG4gIC8qKiBBcHBsaWVzdCB0aGUgY3VycmVudCBvcHRpb25zIHRvIHRoZSBNZWRpYVBpcGUgZ3JhcGguICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCByZWZyZXNoR3JhcGgoKTogdm9pZDtcblxuICAvKipcbiAgICogQ2FsbGJhY2sgdGhhdCBnZXRzIGludm9rZWQgb25jZSBhIG5ldyBncmFwaCBjb25maWd1cmF0aW9uIGhhcyBiZWVuXG4gICAqIGFwcGxpZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgb25HcmFwaFJlZnJlc2hlZCgpOiB2b2lkIHt9XG5cbiAgLyoqIFJldHVybnMgdGhlIGN1cnJlbnQgQ2FsY3VsYXRvckdyYXBoQ29uZmlnLiAqL1xuICBwcm90ZWN0ZWQgZ2V0Q2FsY3VsYXRvckdyYXBoQ29uZmlnKCk6IENhbGN1bGF0b3JHcmFwaENvbmZpZyB7XG4gICAgbGV0IGNvbmZpZzogQ2FsY3VsYXRvckdyYXBoQ29uZmlnfHVuZGVmaW5lZDtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmdldENhbGN1bGF0b3JHcmFwaENvbmZpZyhiaW5hcnlEYXRhID0+IHtcbiAgICAgIGNvbmZpZyA9IENhbGN1bGF0b3JHcmFwaENvbmZpZy5kZXNlcmlhbGl6ZUJpbmFyeShiaW5hcnlEYXRhKTtcbiAgICB9KTtcbiAgICBpZiAoIWNvbmZpZykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdGYWlsZWQgdG8gcmV0cmlldmUgQ2FsY3VsYXRvckdyYXBoQ29uZmlnJyk7XG4gICAgfVxuICAgIHJldHVybiBjb25maWc7XG4gIH1cblxuICAvKipcbiAgICogVGFrZXMgdGhlIHJhdyBkYXRhIGZyb20gYSBNZWRpYVBpcGUgZ3JhcGgsIGFuZCBwYXNzZXMgaXQgdG8gQysrIHRvIGJlIHJ1blxuICAgKiBvdmVyIHRoZSB2aWRlbyBzdHJlYW0uIFdpbGwgcmVwbGFjZSB0aGUgcHJldmlvdXNseSBydW5uaW5nIE1lZGlhUGlwZSBncmFwaCxcbiAgICogaWYgdGhlcmUgaXMgb25lLlxuICAgKiBAcGFyYW0gZ3JhcGhEYXRhIFRoZSByYXcgTWVkaWFQaXBlIGdyYXBoIGRhdGEsIGVpdGhlciBpbiBiaW5hcnlcbiAgICogICAgIHByb3RvYnVmZmVyIGZvcm1hdCAoLmJpbmFyeXBiKSwgb3IgZWxzZSBpbiByYXcgdGV4dCBmb3JtYXQgKC5wYnR4dCBvclxuICAgKiAgICAgLnRleHRwcm90bykuXG4gICAqIEBwYXJhbSBpc0JpbmFyeSBUaGlzIHNob3VsZCBiZSBzZXQgdG8gdHJ1ZSBpZiB0aGUgZ3JhcGggaXMgaW5cbiAgICogICAgIGJpbmFyeSBmb3JtYXQsIGFuZCBmYWxzZSBpZiBpdCBpcyBpbiBodW1hbi1yZWFkYWJsZSB0ZXh0IGZvcm1hdC5cbiAgICovXG4gIHByb3RlY3RlZCBzZXRHcmFwaChncmFwaERhdGE6IFVpbnQ4QXJyYXksIGlzQmluYXJ5OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5ncmFwaFJ1bm5lci5hdHRhY2hFcnJvckxpc3RlbmVyKChjb2RlLCBtZXNzYWdlKSA9PiB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmdFcnJvcnMucHVzaChuZXcgRXJyb3IobWVzc2FnZSkpO1xuICAgIH0pO1xuXG4gICAgLy8gRW5hYmxlcyB1c2Ugb2Ygb3VyIG1vZGVsIHJlc291cmNlIGNhY2hpbmcgZ3JhcGggc2VydmljZTsgd2UgYXBwbHkgdGhpcyB0b1xuICAgIC8vIGV2ZXJ5IE1lZGlhUGlwZSBncmFwaCB3ZSBydW4uXG4gICAgdGhpcy5ncmFwaFJ1bm5lci5yZWdpc3Rlck1vZGVsUmVzb3VyY2VzR3JhcGhTZXJ2aWNlKCk7XG5cbiAgICB0aGlzLmdyYXBoUnVubmVyLnNldEdyYXBoKGdyYXBoRGF0YSwgaXNCaW5hcnkpO1xuICAgIHRoaXMua2VlcGFsaXZlTm9kZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmhhbmRsZUVycm9ycygpO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlcyBhbGwgcXVldWVkLXVwIHBhY2tldHMgdG8gYmUgcHVzaGVkIHRocm91Z2ggdGhlIE1lZGlhUGlwZSBncmFwaCBhc1xuICAgKiBmYXIgYXMgcG9zc2libGUsIHBlcmZvcm1pbmcgYWxsIHByb2Nlc3NpbmcgdW50aWwgbm8gbW9yZSBwcm9jZXNzaW5nIGNhbiBiZVxuICAgKiBkb25lLlxuICAgKi9cbiAgcHJvdGVjdGVkIGZpbmlzaFByb2Nlc3NpbmcoKTogdm9pZCB7XG4gICAgdGhpcy5ncmFwaFJ1bm5lci5maW5pc2hQcm9jZXNzaW5nKCk7XG4gICAgdGhpcy5oYW5kbGVFcnJvcnMoKTtcbiAgfVxuXG4gIC8qXG4gICAqIFNldHMgdGhlIGxhdGVzdCBvdXRwdXQgdGltZXN0YW1wIHJlY2VpdmVkIGZyb20gdGhlIGdyYXBoIChpbiBtcykuXG4gICAqIFRpbWVzdGFtcHMgdGhhdCBhcmUgc21hbGxlciB0aGFuIHRoZSBjdXJyZW50bHkgbGF0ZXN0IG91dHB1dCB0aW1lc3RhbXAgYXJlXG4gICAqIGlnbm9yZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgc2V0TGF0ZXN0T3V0cHV0VGltZXN0YW1wKHRpbWVzdGFtcDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5sYXRlc3RPdXRwdXRUaW1lc3RhbXAgPVxuICAgICAgICBNYXRoLm1heCh0aGlzLmxhdGVzdE91dHB1dFRpbWVzdGFtcCwgdGltZXN0YW1wKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIGEgc3luY3RoZXRoaWMgdGltZXN0YW1wIGluIG1zIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VuZCBkYXRhIHRvIHRoZVxuICAgKiBuZXh0IHBhY2tldC4gVGhlIHRpbWVzdGFtcCBpcyBvbmUgbWlsbGlzZWNvbmQgcGFzdCB0aGUgbGFzdCB0aW1lc3RhbXBcbiAgICogcmVjZWl2ZWQgZnJvbSB0aGUgZ3JhcGguXG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0U3luY3RoZXRpY1RpbWVzdGFtcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmxhdGVzdE91dHB1dFRpbWVzdGFtcCArIDE7XG4gIH1cblxuICAvKiogVGhyb3dzIHRoZSBlcnJvciBmcm9tIHRoZSBlcnJvciBsaXN0ZW5lciBpZiBhbiBlcnJvciB3YXMgcmFpc2VkLiAqL1xuICBwcml2YXRlIGhhbmRsZUVycm9ycygpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZXJyb3JDb3VudCA9IHRoaXMucHJvY2Vzc2luZ0Vycm9ycy5sZW5ndGg7XG4gICAgICBpZiAoZXJyb3JDb3VudCA9PT0gMSkge1xuICAgICAgICAvLyBSZS10aHJvdyBlcnJvciB0byBnZXQgYSBtb3JlIG1lYW5pbmdmdWwgc3RhY2t0cmFjZVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IodGhpcy5wcm9jZXNzaW5nRXJyb3JzWzBdLm1lc3NhZ2UpO1xuICAgICAgfSBlbHNlIGlmIChlcnJvckNvdW50ID4gMSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAnRW5jb3VudGVyZWQgbXVsdGlwbGUgZXJyb3JzOiAnICtcbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc2luZ0Vycm9ycy5tYXAoZSA9PiBlLm1lc3NhZ2UpLmpvaW4oJywgJykpO1xuICAgICAgfVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnByb2Nlc3NpbmdFcnJvcnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICAvKiogQ29uZmlndXJlcyB0aGUgYGV4dGVybmFsRmlsZWAgb3B0aW9uICovXG4gIHByaXZhdGUgc2V0RXh0ZXJuYWxGaWxlKG1vZGVsQXNzZXRQYXRoPzogc3RyaW5nKTogdm9pZDtcbiAgcHJpdmF0ZSBzZXRFeHRlcm5hbEZpbGUobW9kZWxBc3NldEJ1ZmZlcj86IFVpbnQ4QXJyYXkpOiB2b2lkO1xuICBwcml2YXRlIHNldEV4dGVybmFsRmlsZShtb2RlbEFzc2V0UGF0aE9yQnVmZmVyPzogVWludDhBcnJheXxzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBleHRlcm5hbEZpbGUgPSB0aGlzLmJhc2VPcHRpb25zLmdldE1vZGVsQXNzZXQoKSB8fCBuZXcgRXh0ZXJuYWxGaWxlKCk7XG4gICAgaWYgKHR5cGVvZiBtb2RlbEFzc2V0UGF0aE9yQnVmZmVyID09PSAnc3RyaW5nJykge1xuICAgICAgZXh0ZXJuYWxGaWxlLnNldEZpbGVOYW1lKG1vZGVsQXNzZXRQYXRoT3JCdWZmZXIpO1xuICAgICAgZXh0ZXJuYWxGaWxlLmNsZWFyRmlsZUNvbnRlbnQoKTtcbiAgICB9IGVsc2UgaWYgKG1vZGVsQXNzZXRQYXRoT3JCdWZmZXIgaW5zdGFuY2VvZiBVaW50OEFycmF5KSB7XG4gICAgICBleHRlcm5hbEZpbGUuc2V0RmlsZUNvbnRlbnQobW9kZWxBc3NldFBhdGhPckJ1ZmZlcik7XG4gICAgICBleHRlcm5hbEZpbGUuY2xlYXJGaWxlTmFtZSgpO1xuICAgIH1cbiAgICB0aGlzLmJhc2VPcHRpb25zLnNldE1vZGVsQXNzZXQoZXh0ZXJuYWxGaWxlKTtcbiAgfVxuXG4gIC8qKiBDb25maWd1cmVzIHRoZSBgYWNjZWxlcmF0aW9uYCBvcHRpb24uICovXG4gIHByaXZhdGUgc2V0QWNjZWxlcmF0aW9uKG9wdGlvbnM6IEJhc2VPcHRpb25zKSB7XG4gICAgbGV0IGFjY2VsZXJhdGlvbiA9IHRoaXMuYmFzZU9wdGlvbnMuZ2V0QWNjZWxlcmF0aW9uKCk7XG5cbiAgICBpZiAoIWFjY2VsZXJhdGlvbikge1xuICAgICAgLy8gQ3JlYXRlIGRlZmF1bHQgaW5zdGFuY2UgZm9yIHRoZSBpbml0aWFsIGNvbmZpZ3VyYXRpb24uXG4gICAgICBhY2NlbGVyYXRpb24gPSBuZXcgQWNjZWxlcmF0aW9uKCk7XG4gICAgICBhY2NlbGVyYXRpb24uc2V0VGZsaXRlKG5ldyBJbmZlcmVuY2VDYWxjdWxhdG9yT3B0aW9ucy5EZWxlZ2F0ZS5UZkxpdGUoKSk7XG4gICAgfVxuXG4gICAgaWYgKCdkZWxlZ2F0ZScgaW4gb3B0aW9ucykge1xuICAgICAgaWYgKG9wdGlvbnMuZGVsZWdhdGUgPT09ICdHUFUnKSB7XG4gICAgICAgIGFjY2VsZXJhdGlvbi5zZXRHcHUobmV3IEluZmVyZW5jZUNhbGN1bGF0b3JPcHRpb25zLkRlbGVnYXRlLkdwdSgpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGFjY2VsZXJhdGlvbi5zZXRUZmxpdGUoXG4gICAgICAgICAgICBuZXcgSW5mZXJlbmNlQ2FsY3VsYXRvck9wdGlvbnMuRGVsZWdhdGUuVGZMaXRlKCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuYmFzZU9wdGlvbnMuc2V0QWNjZWxlcmF0aW9uKGFjY2VsZXJhdGlvbik7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG5vZGUgdG8gdGhlIGdyYXBoIHRvIHRlbXBvcmFyaWx5IGtlZXAgY2VydGFpbiBzdHJlYW1zIGFsaXZlLlxuICAgKiBOT1RFOiBUbyB1c2UgdGhpcyBjYWxsLCBQYXNzVGhyb3VnaENhbGN1bGF0b3IgbXVzdCBiZSBpbmNsdWRlZCBpbiB5b3VyIHdhc21cbiAgICogICAgIGRlcGVuZGVuY2llcy5cbiAgICovXG4gIHByb3RlY3RlZCBhZGRLZWVwYWxpdmVOb2RlKGdyYXBoQ29uZmlnOiBDYWxjdWxhdG9yR3JhcGhDb25maWcpIHtcbiAgICB0aGlzLmtlZXBhbGl2ZU5vZGUgPSBuZXcgQ2FsY3VsYXRvckdyYXBoQ29uZmlnLk5vZGUoKTtcbiAgICB0aGlzLmtlZXBhbGl2ZU5vZGUuc2V0Q2FsY3VsYXRvcignUGFzc1Rocm91Z2hDYWxjdWxhdG9yJyk7XG4gICAgdGhpcy5rZWVwYWxpdmVOb2RlLmFkZElucHV0U3RyZWFtKEZSRUVfTUVNT1JZX1NUUkVBTSk7XG4gICAgdGhpcy5rZWVwYWxpdmVOb2RlLmFkZE91dHB1dFN0cmVhbShcbiAgICAgICAgRlJFRV9NRU1PUllfU1RSRUFNICsgVU5VU0VEX1NUUkVBTV9TVUZGSVgpO1xuICAgIGdyYXBoQ29uZmlnLmFkZElucHV0U3RyZWFtKEZSRUVfTUVNT1JZX1NUUkVBTSk7XG4gICAgZ3JhcGhDb25maWcuYWRkTm9kZSh0aGlzLmtlZXBhbGl2ZU5vZGUpO1xuICB9XG5cbiAgLyoqIEFkZHMgc3RyZWFtcyB0byB0aGUga2VlcGFsaXZlIG5vZGUgdG8gYmUga2VwdCBhbGl2ZSB1bnRpbCBjYWxsYmFjay4gKi9cbiAgcHJvdGVjdGVkIGtlZXBTdHJlYW1BbGl2ZShzdHJlYW1OYW1lOiBzdHJpbmcpIHtcbiAgICB0aGlzLmtlZXBhbGl2ZU5vZGUhLmFkZElucHV0U3RyZWFtKHN0cmVhbU5hbWUpO1xuICAgIHRoaXMua2VlcGFsaXZlTm9kZSEuYWRkT3V0cHV0U3RyZWFtKHN0cmVhbU5hbWUgKyBVTlVTRURfU1RSRUFNX1NVRkZJWCk7XG4gIH1cblxuICAvKiogRnJlZXMgYW55IHN0cmVhbXMgYmVpbmcga2VwdCBhbGl2ZSBieSB0aGUga2VlcFN0cmVhbUFsaXZlIGNhbGxiYWNrLiAqL1xuICBwcm90ZWN0ZWQgZnJlZUtlZXBhbGl2ZVN0cmVhbXMoKSB7XG4gICAgdGhpcy5ncmFwaFJ1bm5lci5hZGRCb29sVG9TdHJlYW0oXG4gICAgICAgIHRydWUsIEZSRUVfTUVNT1JZX1NUUkVBTSwgdGhpcy5sYXRlc3RPdXRwdXRUaW1lc3RhbXApO1xuICB9XG5cbiAgLyoqIENsb3NlcyBhbmQgY2xlYW5zIHVwIHRoZSByZXNvdXJjZXMgaGVsZCBieSB0aGlzIHRhc2suICovXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMua2VlcGFsaXZlTm9kZSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmNsb3NlR3JhcGgoKTtcbiAgfVxufVxuXG5cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AudioTaskRunner = void 0;\nconst task_runner_1 = require(\"../../../../tasks/web/core/task_runner\");\n/** Base class for all MediaPipe Audio Tasks. */\nclass AudioTaskRunner extends task_runner_1.TaskRunner {\n constructor() {\n super(...arguments);\n this.defaultSampleRate = 48000;\n }\n static async createAudioInstance(type, fileset, options) {\n return task_runner_1.TaskRunner.createInstance(type, /* canvas= */ null, fileset, options);\n }\n /**\n * Sets the sample rate for API calls that omit an explicit sample rate.\n * `48000` is used as a default if this method is not called.\n *\n * @param sampleRate A sample rate (e.g. `44100`).\n */\n setDefaultSampleRate(sampleRate) {\n this.defaultSampleRate = sampleRate;\n }\n /** Sends a single audio clip to the graph and awaits results. */\n processAudioClip(audioData, sampleRate) {\n return this.process(audioData, sampleRate !== null && sampleRate !== void 0 ? sampleRate : this.defaultSampleRate, this.getSynctheticTimestamp());\n }\n}\nexports.AudioTaskRunner = AudioTaskRunner;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fdGFza19ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvdGFza3Mvd2ViL2F1ZGlvL2NvcmUvYXVkaW9fdGFza19ydW5uZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7QUFFSCx3RUFBa0U7QUFNbEUsZ0RBQWdEO0FBQ2hELE1BQXNCLGVBQW1CLFNBQVEsd0JBQVU7SUFBM0Q7O1FBQ1Usc0JBQWlCLEdBQUcsS0FBSyxDQUFDO0lBNkJwQyxDQUFDO0lBM0JXLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQ3RDLElBQWlDLEVBQUUsT0FBb0IsRUFDdkQsT0FBMEI7UUFDNUIsT0FBTyx3QkFBVSxDQUFDLGNBQWMsQ0FDNUIsSUFBSSxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILG9CQUFvQixDQUFDLFVBQWtCO1FBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxVQUFVLENBQUM7SUFDdEMsQ0FBQztJQU1ELGlFQUFpRTtJQUN2RCxnQkFBZ0IsQ0FBQyxTQUF1QixFQUFFLFVBQW1CO1FBQ3JFLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FDZixTQUFTLEVBQUUsVUFBVSxhQUFWLFVBQVUsY0FBVixVQUFVLEdBQUksSUFBSSxDQUFDLGlCQUFpQixFQUMvQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7Q0FDRjtBQTlCRCwwQ0E4QkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDIyIFRoZSBNZWRpYVBpcGUgQXV0aG9ycy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtUYXNrUnVubmVyfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29yZS90YXNrX3J1bm5lcic7XG5pbXBvcnQge1Rhc2tSdW5uZXJPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29yZS90YXNrX3J1bm5lcl9vcHRpb25zJztcbmltcG9ydCB7V2FzbUZpbGVzZXR9IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9jb3JlL3dhc21fZmlsZXNldCc7XG5pbXBvcnQge1dhc21NZWRpYVBpcGVDb25zdHJ1Y3Rvcn0gZnJvbSAnLi4vLi4vLi4vLi4vd2ViL2dyYXBoX3J1bm5lci9ncmFwaF9ydW5uZXInO1xuXG5cbi8qKiBCYXNlIGNsYXNzIGZvciBhbGwgTWVkaWFQaXBlIEF1ZGlvIFRhc2tzLiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1ZGlvVGFza1J1bm5lcjxUPiBleHRlbmRzIFRhc2tSdW5uZXIge1xuICBwcml2YXRlIGRlZmF1bHRTYW1wbGVSYXRlID0gNDgwMDA7XG5cbiAgcHJvdGVjdGVkIHN0YXRpYyBhc3luYyBjcmVhdGVBdWRpb0luc3RhbmNlPFQsIEkgZXh0ZW5kcyBBdWRpb1Rhc2tSdW5uZXI8VD4+KFxuICAgICAgdHlwZTogV2FzbU1lZGlhUGlwZUNvbnN0cnVjdG9yPEk+LCBmaWxlc2V0OiBXYXNtRmlsZXNldCxcbiAgICAgIG9wdGlvbnM6IFRhc2tSdW5uZXJPcHRpb25zKTogUHJvbWlzZTxJPiB7XG4gICAgcmV0dXJuIFRhc2tSdW5uZXIuY3JlYXRlSW5zdGFuY2UoXG4gICAgICAgIHR5cGUsIC8qIGNhbnZhcz0gKi8gbnVsbCwgZmlsZXNldCwgb3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc2FtcGxlIHJhdGUgZm9yIEFQSSBjYWxscyB0aGF0IG9taXQgYW4gZXhwbGljaXQgc2FtcGxlIHJhdGUuXG4gICAqIGA0ODAwMGAgaXMgdXNlZCBhcyBhIGRlZmF1bHQgaWYgdGhpcyBtZXRob2QgaXMgbm90IGNhbGxlZC5cbiAgICpcbiAgICogQHBhcmFtIHNhbXBsZVJhdGUgQSBzYW1wbGUgcmF0ZSAoZS5nLiBgNDQxMDBgKS5cbiAgICovXG4gIHNldERlZmF1bHRTYW1wbGVSYXRlKHNhbXBsZVJhdGU6IG51bWJlcikge1xuICAgIHRoaXMuZGVmYXVsdFNhbXBsZVJhdGUgPSBzYW1wbGVSYXRlO1xuICB9XG5cbiAgLyoqIFNlbmRzIGFuIGF1ZGlvIHBhY2tldCB0byB0aGUgZ3JhcGggYW5kIGF3YWl0cyByZXN1bHRzLiAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgcHJvY2VzcyhcbiAgICAgIGF1ZGlvRGF0YTogRmxvYXQzMkFycmF5LCBzYW1wbGVSYXRlOiBudW1iZXIsIHRpbWVzdGFtcE1zOiBudW1iZXIpOiBUO1xuXG4gIC8qKiBTZW5kcyBhIHNpbmdsZSBhdWRpbyBjbGlwIHRvIHRoZSBncmFwaCBhbmQgYXdhaXRzIHJlc3VsdHMuICovXG4gIHByb3RlY3RlZCBwcm9jZXNzQXVkaW9DbGlwKGF1ZGlvRGF0YTogRmxvYXQzMkFycmF5LCBzYW1wbGVSYXRlPzogbnVtYmVyKTogVCB7XG4gICAgcmV0dXJuIHRoaXMucHJvY2VzcyhcbiAgICAgICAgYXVkaW9EYXRhLCBzYW1wbGVSYXRlID8/IHRoaXMuZGVmYXVsdFNhbXBsZVJhdGUsXG4gICAgICAgIHRoaXMuZ2V0U3luY3RoZXRpY1RpbWVzdGFtcCgpKTtcbiAgfVxufVxuXG5cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertClassifierOptionsToProto = void 0;\nconst classifier_options_pb_1 = require(\"../../../../tasks/cc/components/processors/proto/classifier_options_pb\");\n/**\n * Converts a ClassifierOptions object to its Proto representation, optionally\n * based on existing definition.\n * @param options The options object to convert to a Proto. Only options that\n * are expliclty provided are set.\n * @param baseOptions A base object that options can be merged into.\n */\nfunction convertClassifierOptionsToProto(options, baseOptions) {\n const classifierOptions = baseOptions ? baseOptions.clone() : new classifier_options_pb_1.ClassifierOptions();\n if (options.displayNamesLocale !== undefined) {\n classifierOptions.setDisplayNamesLocale(options.displayNamesLocale);\n }\n else if (options.displayNamesLocale === undefined) {\n classifierOptions.clearDisplayNamesLocale();\n }\n if (options.maxResults !== undefined) {\n classifierOptions.setMaxResults(options.maxResults);\n }\n else if ('maxResults' in options) { // Check for undefined\n classifierOptions.clearMaxResults();\n }\n if (options.scoreThreshold !== undefined) {\n classifierOptions.setScoreThreshold(options.scoreThreshold);\n }\n else if ('scoreThreshold' in options) { // Check for undefined\n classifierOptions.clearScoreThreshold();\n }\n if (options.categoryAllowlist !== undefined) {\n classifierOptions.setCategoryAllowlistList(options.categoryAllowlist);\n }\n else if ('categoryAllowlist' in options) { // Check for undefined\n classifierOptions.clearCategoryAllowlistList();\n }\n if (options.categoryDenylist !== undefined) {\n classifierOptions.setCategoryDenylistList(options.categoryDenylist);\n }\n else if ('categoryDenylist' in options) { // Check for undefined\n classifierOptions.clearCategoryDenylistList();\n }\n return classifierOptions;\n}\nexports.convertClassifierOptionsToProto = convertClassifierOptionsToProto;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZmllcl9vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWFwaXBlL3Rhc2tzL3dlYi9jb21wb25lbnRzL3Byb2Nlc3NvcnMvY2xhc3NpZmllcl9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBRUgsa0hBQW1JO0FBR25JOzs7Ozs7R0FNRztBQUNILFNBQWdCLCtCQUErQixDQUMzQyxPQUEwQixFQUMxQixXQUFvQztJQUN0QyxNQUFNLGlCQUFpQixHQUNuQixXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSx5Q0FBc0IsRUFBRSxDQUFDO0lBQ3JFLElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtRQUM1QyxpQkFBaUIsQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztLQUNyRTtTQUFNLElBQUksT0FBTyxDQUFDLGtCQUFrQixLQUFLLFNBQVMsRUFBRTtRQUNuRCxpQkFBaUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0tBQzdDO0lBRUQsSUFBSSxPQUFPLENBQUMsVUFBVSxLQUFLLFNBQVMsRUFBRTtRQUNwQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBQ3JEO1NBQU0sSUFBSSxZQUFZLElBQUksT0FBTyxFQUFFLEVBQUcsc0JBQXNCO1FBQzNELGlCQUFpQixDQUFDLGVBQWUsRUFBRSxDQUFDO0tBQ3JDO0lBRUQsSUFBSSxPQUFPLENBQUMsY0FBYyxLQUFLLFNBQVMsRUFBRTtRQUN4QyxpQkFBaUIsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDN0Q7U0FBTSxJQUFJLGdCQUFnQixJQUFJLE9BQU8sRUFBRSxFQUFHLHNCQUFzQjtRQUMvRCxpQkFBaUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0tBQ3pDO0lBRUQsSUFBSSxPQUFPLENBQUMsaUJBQWlCLEtBQUssU0FBUyxFQUFFO1FBQzNDLGlCQUFpQixDQUFDLHdCQUF3QixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0tBQ3ZFO1NBQU0sSUFBSSxtQkFBbUIsSUFBSSxPQUFPLEVBQUUsRUFBRyxzQkFBc0I7UUFDbEUsaUJBQWlCLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztLQUNoRDtJQUVELElBQUksT0FBTyxDQUFDLGdCQUFnQixLQUFLLFNBQVMsRUFBRTtRQUMxQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztLQUNyRTtTQUFNLElBQUksa0JBQWtCLElBQUksT0FBTyxFQUFFLEVBQUcsc0JBQXNCO1FBQ2pFLGlCQUFpQixDQUFDLHlCQUF5QixFQUFFLENBQUM7S0FDL0M7SUFDRCxPQUFPLGlCQUFpQixDQUFDO0FBQzNCLENBQUM7QUFuQ0QsMEVBbUNDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2xhc3NpZmllck9wdGlvbnMgYXMgQ2xhc3NpZmllck9wdGlvbnNQcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3MvY2MvY29tcG9uZW50cy9wcm9jZXNzb3JzL3Byb3RvL2NsYXNzaWZpZXJfb3B0aW9uc19wYic7XG5pbXBvcnQge0NsYXNzaWZpZXJPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29yZS9jbGFzc2lmaWVyX29wdGlvbnMnO1xuXG4vKipcbiAqIENvbnZlcnRzIGEgQ2xhc3NpZmllck9wdGlvbnMgb2JqZWN0IHRvIGl0cyBQcm90byByZXByZXNlbnRhdGlvbiwgb3B0aW9uYWxseVxuICogYmFzZWQgb24gZXhpc3RpbmcgZGVmaW5pdGlvbi5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9iamVjdCB0byBjb252ZXJ0IHRvIGEgUHJvdG8uIE9ubHkgb3B0aW9ucyB0aGF0XG4gKiAgICAgYXJlIGV4cGxpY2x0eSBwcm92aWRlZCBhcmUgc2V0LlxuICogQHBhcmFtIGJhc2VPcHRpb25zIEEgYmFzZSBvYmplY3QgdGhhdCBvcHRpb25zIGNhbiBiZSBtZXJnZWQgaW50by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRDbGFzc2lmaWVyT3B0aW9uc1RvUHJvdG8oXG4gICAgb3B0aW9uczogQ2xhc3NpZmllck9wdGlvbnMsXG4gICAgYmFzZU9wdGlvbnM/OiBDbGFzc2lmaWVyT3B0aW9uc1Byb3RvKTogQ2xhc3NpZmllck9wdGlvbnNQcm90byB7XG4gIGNvbnN0IGNsYXNzaWZpZXJPcHRpb25zID1cbiAgICAgIGJhc2VPcHRpb25zID8gYmFzZU9wdGlvbnMuY2xvbmUoKSA6IG5ldyBDbGFzc2lmaWVyT3B0aW9uc1Byb3RvKCk7XG4gIGlmIChvcHRpb25zLmRpc3BsYXlOYW1lc0xvY2FsZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgY2xhc3NpZmllck9wdGlvbnMuc2V0RGlzcGxheU5hbWVzTG9jYWxlKG9wdGlvbnMuZGlzcGxheU5hbWVzTG9jYWxlKTtcbiAgfSBlbHNlIGlmIChvcHRpb25zLmRpc3BsYXlOYW1lc0xvY2FsZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgY2xhc3NpZmllck9wdGlvbnMuY2xlYXJEaXNwbGF5TmFtZXNMb2NhbGUoKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLm1heFJlc3VsdHMgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsYXNzaWZpZXJPcHRpb25zLnNldE1heFJlc3VsdHMob3B0aW9ucy5tYXhSZXN1bHRzKTtcbiAgfSBlbHNlIGlmICgnbWF4UmVzdWx0cycgaW4gb3B0aW9ucykgeyAgLy8gQ2hlY2sgZm9yIHVuZGVmaW5lZFxuICAgIGNsYXNzaWZpZXJPcHRpb25zLmNsZWFyTWF4UmVzdWx0cygpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMuc2NvcmVUaHJlc2hvbGQgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsYXNzaWZpZXJPcHRpb25zLnNldFNjb3JlVGhyZXNob2xkKG9wdGlvbnMuc2NvcmVUaHJlc2hvbGQpO1xuICB9IGVsc2UgaWYgKCdzY29yZVRocmVzaG9sZCcgaW4gb3B0aW9ucykgeyAgLy8gQ2hlY2sgZm9yIHVuZGVmaW5lZFxuICAgIGNsYXNzaWZpZXJPcHRpb25zLmNsZWFyU2NvcmVUaHJlc2hvbGQoKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmNhdGVnb3J5QWxsb3dsaXN0ICE9PSB1bmRlZmluZWQpIHtcbiAgICBjbGFzc2lmaWVyT3B0aW9ucy5zZXRDYXRlZ29yeUFsbG93bGlzdExpc3Qob3B0aW9ucy5jYXRlZ29yeUFsbG93bGlzdCk7XG4gIH0gZWxzZSBpZiAoJ2NhdGVnb3J5QWxsb3dsaXN0JyBpbiBvcHRpb25zKSB7ICAvLyBDaGVjayBmb3IgdW5kZWZpbmVkXG4gICAgY2xhc3NpZmllck9wdGlvbnMuY2xlYXJDYXRlZ29yeUFsbG93bGlzdExpc3QoKTtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmNhdGVnb3J5RGVueWxpc3QgIT09IHVuZGVmaW5lZCkge1xuICAgIGNsYXNzaWZpZXJPcHRpb25zLnNldENhdGVnb3J5RGVueWxpc3RMaXN0KG9wdGlvbnMuY2F0ZWdvcnlEZW55bGlzdCk7XG4gIH0gZWxzZSBpZiAoJ2NhdGVnb3J5RGVueWxpc3QnIGluIG9wdGlvbnMpIHsgIC8vIENoZWNrIGZvciB1bmRlZmluZWRcbiAgICBjbGFzc2lmaWVyT3B0aW9ucy5jbGVhckNhdGVnb3J5RGVueWxpc3RMaXN0KCk7XG4gIH1cbiAgcmV0dXJuIGNsYXNzaWZpZXJPcHRpb25zO1xufVxuIl19","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertFromClassificationResultProto = exports.convertFromClassifications = void 0;\nconst DEFAULT_INDEX = -1;\nconst DEFAULT_SCORE = 0.0;\n/**\n * Converts a list of Classification protos to a Classifications object.\n */\nfunction convertFromClassifications(classifications, headIndex = DEFAULT_INDEX, headName = '') {\n const categories = classifications.map(classification => {\n var _a, _b, _c, _d;\n return {\n index: (_a = classification.getIndex()) !== null && _a !== void 0 ? _a : DEFAULT_INDEX,\n score: (_b = classification.getScore()) !== null && _b !== void 0 ? _b : DEFAULT_SCORE,\n categoryName: (_c = classification.getLabel()) !== null && _c !== void 0 ? _c : '',\n displayName: (_d = classification.getDisplayName()) !== null && _d !== void 0 ? _d : '',\n };\n });\n return {\n categories,\n headIndex,\n headName,\n };\n}\nexports.convertFromClassifications = convertFromClassifications;\n/**\n * Converts a Classifications proto to a Classifications object.\n */\nfunction convertFromClassificationsProto(source) {\n var _a, _b;\n return convertFromClassifications((_b = (_a = source.getClassificationList()) === null || _a === void 0 ? void 0 : _a.getClassificationList()) !== null && _b !== void 0 ? _b : [], source.getHeadIndex(), source.getHeadName());\n}\n/**\n * Converts a ClassificationResult proto to a ClassificationResult object.\n */\nfunction convertFromClassificationResultProto(source) {\n const result = {\n classifications: source.getClassificationsList().map(classififications => convertFromClassificationsProto(classififications))\n };\n if (source.hasTimestampMs()) {\n result.timestampMs = source.getTimestampMs();\n }\n return result;\n}\nexports.convertFromClassificationResultProto = convertFromClassificationResultProto;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3NpZmllcl9yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvdGFza3Mvd2ViL2NvbXBvbmVudHMvcHJvY2Vzc29ycy9jbGFzc2lmaWVyX3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7OztBQU1ILE1BQU0sYUFBYSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ3pCLE1BQU0sYUFBYSxHQUFHLEdBQUcsQ0FBQztBQUUxQjs7R0FFRztBQUNILFNBQWdCLDBCQUEwQixDQUN0QyxlQUFzQyxFQUFFLFNBQVMsR0FBRyxhQUFhLEVBQ2pFLFFBQVEsR0FBRyxFQUFFO0lBQ2YsTUFBTSxVQUFVLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRTs7UUFDdEQsT0FBTztZQUNMLEtBQUssRUFBRSxNQUFBLGNBQWMsQ0FBQyxRQUFRLEVBQUUsbUNBQUksYUFBYTtZQUNqRCxLQUFLLEVBQUUsTUFBQSxjQUFjLENBQUMsUUFBUSxFQUFFLG1DQUFJLGFBQWE7WUFDakQsWUFBWSxFQUFFLE1BQUEsY0FBYyxDQUFDLFFBQVEsRUFBRSxtQ0FBSSxFQUFFO1lBQzdDLFdBQVcsRUFBRSxNQUFBLGNBQWMsQ0FBQyxjQUFjLEVBQUUsbUNBQUksRUFBRTtTQUNuRCxDQUFDO0lBQ0osQ0FBQyxDQUFDLENBQUM7SUFDSCxPQUFPO1FBQ0wsVUFBVTtRQUNWLFNBQVM7UUFDVCxRQUFRO0tBQ1QsQ0FBQztBQUNKLENBQUM7QUFoQkQsZ0VBZ0JDO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLCtCQUErQixDQUFDLE1BQTRCOztJQUVuRSxPQUFPLDBCQUEwQixDQUM3QixNQUFBLE1BQUEsTUFBTSxDQUFDLHFCQUFxQixFQUFFLDBDQUFFLHFCQUFxQixFQUFFLG1DQUFJLEVBQUUsRUFDN0QsTUFBTSxDQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9DQUFvQyxDQUNoRCxNQUFpQztJQUNuQyxNQUFNLE1BQU0sR0FBeUI7UUFDbkMsZUFBZSxFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEdBQUcsQ0FDaEQsaUJBQWlCLENBQUMsRUFBRSxDQUFDLCtCQUErQixDQUFDLGlCQUFpQixDQUFDLENBQUM7S0FDN0UsQ0FBQztJQUNGLElBQUksTUFBTSxDQUFDLGNBQWMsRUFBRSxFQUFFO1FBQzNCLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO0tBQzlDO0lBQ0QsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVZELG9GQVVDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2xhc3NpZmljYXRpb24gYXMgQ2xhc3NpZmljYXRpb25Qcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vZnJhbWV3b3JrL2Zvcm1hdHMvY2xhc3NpZmljYXRpb25fcGInO1xuaW1wb3J0IHtDbGFzc2lmaWNhdGlvblJlc3VsdCBhcyBDbGFzc2lmaWNhdGlvblJlc3VsdFByb3RvLCBDbGFzc2lmaWNhdGlvbnMgYXMgQ2xhc3NpZmljYXRpb25zUHJvdG99IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL2NjL2NvbXBvbmVudHMvY29udGFpbmVycy9wcm90by9jbGFzc2lmaWNhdGlvbnNfcGInO1xuaW1wb3J0IHtDbGFzc2lmaWNhdGlvblJlc3VsdCwgQ2xhc3NpZmljYXRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29tcG9uZW50cy9jb250YWluZXJzL2NsYXNzaWZpY2F0aW9uX3Jlc3VsdCc7XG5cbmNvbnN0IERFRkFVTFRfSU5ERVggPSAtMTtcbmNvbnN0IERFRkFVTFRfU0NPUkUgPSAwLjA7XG5cbi8qKlxuICogQ29udmVydHMgYSBsaXN0IG9mIENsYXNzaWZpY2F0aW9uIHByb3RvcyB0byBhIENsYXNzaWZpY2F0aW9ucyBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RnJvbUNsYXNzaWZpY2F0aW9ucyhcbiAgICBjbGFzc2lmaWNhdGlvbnM6IENsYXNzaWZpY2F0aW9uUHJvdG9bXSwgaGVhZEluZGV4ID0gREVGQVVMVF9JTkRFWCxcbiAgICBoZWFkTmFtZSA9ICcnKTogQ2xhc3NpZmljYXRpb25zIHtcbiAgY29uc3QgY2F0ZWdvcmllcyA9IGNsYXNzaWZpY2F0aW9ucy5tYXAoY2xhc3NpZmljYXRpb24gPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBpbmRleDogY2xhc3NpZmljYXRpb24uZ2V0SW5kZXgoKSA/PyBERUZBVUxUX0lOREVYLFxuICAgICAgc2NvcmU6IGNsYXNzaWZpY2F0aW9uLmdldFNjb3JlKCkgPz8gREVGQVVMVF9TQ09SRSxcbiAgICAgIGNhdGVnb3J5TmFtZTogY2xhc3NpZmljYXRpb24uZ2V0TGFiZWwoKSA/PyAnJyxcbiAgICAgIGRpc3BsYXlOYW1lOiBjbGFzc2lmaWNhdGlvbi5nZXREaXNwbGF5TmFtZSgpID8/ICcnLFxuICAgIH07XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGNhdGVnb3JpZXMsXG4gICAgaGVhZEluZGV4LFxuICAgIGhlYWROYW1lLFxuICB9O1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGEgQ2xhc3NpZmljYXRpb25zIHByb3RvIHRvIGEgQ2xhc3NpZmljYXRpb25zIG9iamVjdC5cbiAqL1xuZnVuY3Rpb24gY29udmVydEZyb21DbGFzc2lmaWNhdGlvbnNQcm90byhzb3VyY2U6IENsYXNzaWZpY2F0aW9uc1Byb3RvKTpcbiAgICBDbGFzc2lmaWNhdGlvbnMge1xuICByZXR1cm4gY29udmVydEZyb21DbGFzc2lmaWNhdGlvbnMoXG4gICAgICBzb3VyY2UuZ2V0Q2xhc3NpZmljYXRpb25MaXN0KCk/LmdldENsYXNzaWZpY2F0aW9uTGlzdCgpID8/IFtdLFxuICAgICAgc291cmNlLmdldEhlYWRJbmRleCgpLCBzb3VyY2UuZ2V0SGVhZE5hbWUoKSk7XG59XG5cbi8qKlxuICogQ29udmVydHMgYSBDbGFzc2lmaWNhdGlvblJlc3VsdCBwcm90byB0byBhIENsYXNzaWZpY2F0aW9uUmVzdWx0IG9iamVjdC5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRGcm9tQ2xhc3NpZmljYXRpb25SZXN1bHRQcm90byhcbiAgICBzb3VyY2U6IENsYXNzaWZpY2F0aW9uUmVzdWx0UHJvdG8pOiBDbGFzc2lmaWNhdGlvblJlc3VsdCB7XG4gIGNvbnN0IHJlc3VsdDogQ2xhc3NpZmljYXRpb25SZXN1bHQgPSB7XG4gICAgY2xhc3NpZmljYXRpb25zOiBzb3VyY2UuZ2V0Q2xhc3NpZmljYXRpb25zTGlzdCgpLm1hcChcbiAgICAgICAgY2xhc3NpZmlmaWNhdGlvbnMgPT4gY29udmVydEZyb21DbGFzc2lmaWNhdGlvbnNQcm90byhjbGFzc2lmaWZpY2F0aW9ucykpXG4gIH07XG4gIGlmIChzb3VyY2UuaGFzVGltZXN0YW1wTXMoKSkge1xuICAgIHJlc3VsdC50aW1lc3RhbXBNcyA9IHNvdXJjZS5nZXRUaW1lc3RhbXBNcygpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG4iXX0=","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fY2xhc3NpZmllcl9vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXVkaW9fY2xhc3NpZmllcl9vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMjIgVGhlIE1lZGlhUGlwZSBBdXRob3JzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQge0NsYXNzaWZpZXJPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29yZS9jbGFzc2lmaWVyX29wdGlvbnMnO1xuaW1wb3J0IHtUYXNrUnVubmVyT3B0aW9uc30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvdGFza19ydW5uZXJfb3B0aW9ucyc7XG5cbi8qKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSB0aGUgTWVkaWFQaXBlIEF1ZGlvIENsYXNzaWZpZXIgVGFzayAqL1xuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEF1ZGlvQ2xhc3NpZmllck9wdGlvbnMgZXh0ZW5kcyBDbGFzc2lmaWVyT3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFza1J1bm5lck9wdGlvbnMge31cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fY2xhc3NpZmllcl9yZXN1bHQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhdWRpb19jbGFzc2lmaWVyX3Jlc3VsdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0ciLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDIyIFRoZSBNZWRpYVBpcGUgQXV0aG9ycy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuZXhwb3J0IHtDYXRlZ29yeX0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvbXBvbmVudHMvY29udGFpbmVycy9jYXRlZ29yeSc7XG5leHBvcnQge0NsYXNzaWZpY2F0aW9uUmVzdWx0IGFzIEF1ZGlvQ2xhc3NpZmllclJlc3VsdCwgQ2xhc3NpZmljYXRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29tcG9uZW50cy9jb250YWluZXJzL2NsYXNzaWZpY2F0aW9uX3Jlc3VsdCc7XG4iXX0=","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AudioClassifier = void 0;\nconst calculator_pb_1 = require(\"../../../../framework/calculator_pb\");\nconst calculator_options_pb_1 = require(\"../../../../framework/calculator_options_pb\");\nconst audio_classifier_graph_options_pb_1 = require(\"../../../../tasks/cc/audio/audio_classifier/proto/audio_classifier_graph_options_pb\");\nconst classifications_pb_1 = require(\"../../../../tasks/cc/components/containers/proto/classifications_pb\");\nconst base_options_pb_1 = require(\"../../../../tasks/cc/core/proto/base_options_pb\");\nconst audio_task_runner_1 = require(\"../../../../tasks/web/audio/core/audio_task_runner\");\nconst classifier_options_1 = require(\"../../../../tasks/web/components/processors/classifier_options\");\nconst classifier_result_1 = require(\"../../../../tasks/web/components/processors/classifier_result\");\nconst task_runner_1 = require(\"../../../../tasks/web/core/task_runner\");\n__exportStar(require(\"./audio_classifier_options\"), exports);\n__exportStar(require(\"./audio_classifier_result\"), exports);\nconst MEDIAPIPE_GRAPH = 'mediapipe.tasks.audio.audio_classifier.AudioClassifierGraph';\nconst AUDIO_STREAM = 'audio_in';\nconst SAMPLE_RATE_STREAM = 'sample_rate';\nconst TIMESTAMPED_CLASSIFICATIONS_STREAM = 'timestamped_classifications';\n// The OSS JS API does not support the builder pattern.\n// tslint:disable:jspb-use-builder-pattern\n/** Performs audio classification. */\nclass AudioClassifier extends audio_task_runner_1.AudioTaskRunner {\n /**\n * Initializes the Wasm runtime and creates a new audio classifier from the\n * provided options.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param audioClassifierOptions The options for the audio classifier. Note\n * that either a path to the model asset or a model buffer needs to be\n * provided (via `baseOptions`).\n */\n static createFromOptions(wasmFileset, audioClassifierOptions) {\n return audio_task_runner_1.AudioTaskRunner.createAudioInstance(AudioClassifier, wasmFileset, audioClassifierOptions);\n }\n /**\n * Initializes the Wasm runtime and creates a new audio classifier based on\n * the provided model asset buffer.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param modelAssetBuffer A binary representation of the model.\n */\n static createFromModelBuffer(wasmFileset, modelAssetBuffer) {\n return audio_task_runner_1.AudioTaskRunner.createAudioInstance(AudioClassifier, wasmFileset, { baseOptions: { modelAssetBuffer } });\n }\n /**\n * Initializes the Wasm runtime and creates a new audio classifier based on\n * the path to the model asset.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param modelAssetPath The path to the model asset.\n */\n static createFromModelPath(wasmFileset, modelAssetPath) {\n return audio_task_runner_1.AudioTaskRunner.createInstance(AudioClassifier, /* canvas= */ null, wasmFileset, { baseOptions: { modelAssetPath } });\n }\n /** @hideconstructor */\n constructor(wasmModule, glCanvas) {\n super(new task_runner_1.CachedGraphRunner(wasmModule, glCanvas));\n this.classificationResults = [];\n this.options = new audio_classifier_graph_options_pb_1.AudioClassifierGraphOptions();\n this.options.setBaseOptions(new base_options_pb_1.BaseOptions());\n }\n get baseOptions() {\n return this.options.getBaseOptions();\n }\n set baseOptions(proto) {\n this.options.setBaseOptions(proto);\n }\n /**\n * Sets new options for the audio classifier.\n *\n * Calling `setOptions()` with a subset of options only affects those options.\n * You can reset an option back to its default value by explicitly setting it\n * to `undefined`.\n *\n * @param options The options for the audio classifier.\n */\n setOptions(options) {\n this.options.setClassifierOptions((0, classifier_options_1.convertClassifierOptionsToProto)(options, this.options.getClassifierOptions()));\n return this.applyOptions(options);\n }\n // TODO: Add a classifyStream() that takes a timestamp\n /**\n * Performs audio classification on the provided audio clip and waits\n * synchronously for the response.\n *\n * @param audioData An array of raw audio capture data, like from a call to\n * `getChannelData()` on an AudioBuffer.\n * @param sampleRate The sample rate in Hz of the provided audio data. If not\n * set, defaults to the sample rate set via `setDefaultSampleRate()` or\n * `48000` if no custom default was set.\n * @return The classification result of the audio datas\n */\n classify(audioData, sampleRate) {\n return this.processAudioClip(audioData, sampleRate);\n }\n /** Sends an audio package to the graph and returns the classifications. */\n process(audioData, sampleRate, timestampMs) {\n this.graphRunner.addDoubleToStream(sampleRate, SAMPLE_RATE_STREAM, timestampMs);\n this.graphRunner.addAudioToStreamWithShape(audioData, /* numChannels= */ 1, /* numSamples= */ audioData.length, AUDIO_STREAM, timestampMs);\n this.classificationResults = [];\n this.finishProcessing();\n return [...this.classificationResults];\n }\n /**\n * Internal function for converting raw data into classification results, and\n * adding them to our classfication results list.\n **/\n addJsAudioClassificationResults(binaryProtos) {\n binaryProtos.forEach(binaryProto => {\n const classificationResult = classifications_pb_1.ClassificationResult.deserializeBinary(binaryProto);\n this.classificationResults.push((0, classifier_result_1.convertFromClassificationResultProto)(classificationResult));\n });\n }\n /** Updates the MediaPipe graph configuration. */\n refreshGraph() {\n const graphConfig = new calculator_pb_1.CalculatorGraphConfig();\n graphConfig.addInputStream(AUDIO_STREAM);\n graphConfig.addInputStream(SAMPLE_RATE_STREAM);\n graphConfig.addOutputStream(TIMESTAMPED_CLASSIFICATIONS_STREAM);\n const calculatorOptions = new calculator_options_pb_1.CalculatorOptions();\n calculatorOptions.setExtension(audio_classifier_graph_options_pb_1.AudioClassifierGraphOptions.ext, this.options);\n // Perform audio classification. Pre-processing and results post-processing\n // are built-in.\n const classifierNode = new calculator_pb_1.CalculatorGraphConfig.Node();\n classifierNode.setCalculator(MEDIAPIPE_GRAPH);\n classifierNode.addInputStream('AUDIO:' + AUDIO_STREAM);\n classifierNode.addInputStream('SAMPLE_RATE:' + SAMPLE_RATE_STREAM);\n classifierNode.addOutputStream('TIMESTAMPED_CLASSIFICATIONS:' + TIMESTAMPED_CLASSIFICATIONS_STREAM);\n classifierNode.setOptions(calculatorOptions);\n graphConfig.addNode(classifierNode);\n this.graphRunner.attachProtoVectorListener(TIMESTAMPED_CLASSIFICATIONS_STREAM, (binaryProtos, timestamp) => {\n this.addJsAudioClassificationResults(binaryProtos);\n this.setLatestOutputTimestamp(timestamp);\n });\n this.graphRunner.attachEmptyPacketListener(TIMESTAMPED_CLASSIFICATIONS_STREAM, timestamp => {\n this.setLatestOutputTimestamp(timestamp);\n });\n const binaryGraph = graphConfig.serializeBinary();\n this.setGraph(new Uint8Array(binaryGraph), /* isBinary= */ true);\n }\n}\nexports.AudioClassifier = AudioClassifier;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fY2xhc3NpZmllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhcGlwZS90YXNrcy93ZWIvYXVkaW8vYXVkaW9fY2xhc3NpZmllci9hdWRpb19jbGFzc2lmaWVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx1RUFBMEU7QUFDMUUsdUZBQThFO0FBQzlFLDJJQUFnSTtBQUNoSSw0R0FBeUc7QUFDekcscUZBQWdHO0FBQ2hHLDBGQUFtRjtBQUNuRix1R0FBK0c7QUFDL0cscUdBQW1IO0FBQ25ILHdFQUF5RTtBQVF6RSw2REFBMkM7QUFDM0MsNERBQTBDO0FBRTFDLE1BQU0sZUFBZSxHQUNqQiw2REFBNkQsQ0FBQztBQUVsRSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUM7QUFDaEMsTUFBTSxrQkFBa0IsR0FBRyxhQUFhLENBQUM7QUFDekMsTUFBTSxrQ0FBa0MsR0FBRyw2QkFBNkIsQ0FBQztBQUV6RSx1REFBdUQ7QUFDdkQsMENBQTBDO0FBRTFDLHFDQUFxQztBQUNyQyxNQUFhLGVBQWdCLFNBQVEsbUNBQXdDO0lBSTNFOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUNwQixXQUF3QixFQUFFLHNCQUE4QztRQUUxRSxPQUFPLG1DQUFlLENBQUMsbUJBQW1CLENBQ3RDLGVBQWUsRUFBRSxXQUFXLEVBQUUsc0JBQXNCLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsTUFBTSxDQUFDLHFCQUFxQixDQUN4QixXQUF3QixFQUN4QixnQkFBNEI7UUFDOUIsT0FBTyxtQ0FBZSxDQUFDLG1CQUFtQixDQUN0QyxlQUFlLEVBQUUsV0FBVyxFQUFFLEVBQUMsV0FBVyxFQUFFLEVBQUMsZ0JBQWdCLEVBQUMsRUFBQyxDQUFDLENBQUM7SUFDdkUsQ0FBQztJQUVEOzs7Ozs7T0FN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O0NBQ0Y7QUFsS0QsMENBa0tDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7Q2FsY3VsYXRvckdyYXBoQ29uZmlnfSBmcm9tICcuLi8uLi8uLi8uLi9mcmFtZXdvcmsvY2FsY3VsYXRvcl9wYic7XG5pbXBvcnQge0NhbGN1bGF0b3JPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi9mcmFtZXdvcmsvY2FsY3VsYXRvcl9vcHRpb25zX3BiJztcbmltcG9ydCB7QXVkaW9DbGFzc2lmaWVyR3JhcGhPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy9jYy9hdWRpby9hdWRpb19jbGFzc2lmaWVyL3Byb3RvL2F1ZGlvX2NsYXNzaWZpZXJfZ3JhcGhfb3B0aW9uc19wYic7XG5pbXBvcnQge0NsYXNzaWZpY2F0aW9uUmVzdWx0fSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy9jYy9jb21wb25lbnRzL2NvbnRhaW5lcnMvcHJvdG8vY2xhc3NpZmljYXRpb25zX3BiJztcbmltcG9ydCB7QmFzZU9wdGlvbnMgYXMgQmFzZU9wdGlvbnNQcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3MvY2MvY29yZS9wcm90by9iYXNlX29wdGlvbnNfcGInO1xuaW1wb3J0IHtBdWRpb1Rhc2tSdW5uZXJ9IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9hdWRpby9jb3JlL2F1ZGlvX3Rhc2tfcnVubmVyJztcbmltcG9ydCB7Y29udmVydENsYXNzaWZpZXJPcHRpb25zVG9Qcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvbXBvbmVudHMvcHJvY2Vzc29ycy9jbGFzc2lmaWVyX29wdGlvbnMnO1xuaW1wb3J0IHtjb252ZXJ0RnJvbUNsYXNzaWZpY2F0aW9uUmVzdWx0UHJvdG99IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9jb21wb25lbnRzL3Byb2Nlc3NvcnMvY2xhc3NpZmllcl9yZXN1bHQnO1xuaW1wb3J0IHtDYWNoZWRHcmFwaFJ1bm5lcn0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvdGFza19ydW5uZXInO1xuaW1wb3J0IHtXYXNtRmlsZXNldH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvd2FzbV9maWxlc2V0JztcbmltcG9ydCB7V2FzbU1vZHVsZX0gZnJvbSAnLi4vLi4vLi4vLi4vd2ViL2dyYXBoX3J1bm5lci9ncmFwaF9ydW5uZXInO1xuLy8gUGxhY2Vob2xkZXIgZm9yIGludGVybmFsIGRlcGVuZGVuY3kgb24gdHJ1c3RlZCByZXNvdXJjZSB1cmxcblxuaW1wb3J0IHtBdWRpb0NsYXNzaWZpZXJPcHRpb25zfSBmcm9tICcuL2F1ZGlvX2NsYXNzaWZpZXJfb3B0aW9ucyc7XG5pbXBvcnQge0F1ZGlvQ2xhc3NpZmllclJlc3VsdH0gZnJvbSAnLi9hdWRpb19jbGFzc2lmaWVyX3Jlc3VsdCc7XG5cbmV4cG9ydCAqIGZyb20gJy4vYXVkaW9fY2xhc3NpZmllcl9vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vYXVkaW9fY2xhc3NpZmllcl9yZXN1bHQnO1xuXG5jb25zdCBNRURJQVBJUEVfR1JBUEggPVxuICAgICdtZWRpYXBpcGUudGFza3MuYXVkaW8uYXVkaW9fY2xhc3NpZmllci5BdWRpb0NsYXNzaWZpZXJHcmFwaCc7XG5cbmNvbnN0IEFVRElPX1NUUkVBTSA9ICdhdWRpb19pbic7XG5jb25zdCBTQU1QTEVfUkFURV9TVFJFQU0gPSAnc2FtcGxlX3JhdGUnO1xuY29uc3QgVElNRVNUQU1QRURfQ0xBU1NJRklDQVRJT05TX1NUUkVBTSA9ICd0aW1lc3RhbXBlZF9jbGFzc2lmaWNhdGlvbnMnO1xuXG4vLyBUaGUgT1NTIEpTIEFQSSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBidWlsZGVyIHBhdHRlcm4uXG4vLyB0c2xpbnQ6ZGlzYWJsZTpqc3BiLXVzZS1idWlsZGVyLXBhdHRlcm5cblxuLyoqIFBlcmZvcm1zIGF1ZGlvIGNsYXNzaWZpY2F0aW9uLiAqL1xuZXhwb3J0IGNsYXNzIEF1ZGlvQ2xhc3NpZmllciBleHRlbmRzIEF1ZGlvVGFza1J1bm5lcjxBdWRpb0NsYXNzaWZpZXJSZXN1bHRbXT4ge1xuICBwcml2YXRlIGNsYXNzaWZpY2F0aW9uUmVzdWx0czogQXVkaW9DbGFzc2lmaWVyUmVzdWx0W10gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zID0gbmV3IEF1ZGlvQ2xhc3NpZmllckdyYXBoT3B0aW9ucygpO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgV2FzbSBydW50aW1lIGFuZCBjcmVhdGVzIGEgbmV3IGF1ZGlvIGNsYXNzaWZpZXIgZnJvbSB0aGVcbiAgICogcHJvdmlkZWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHdhc21GaWxlc2V0IEEgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCBwcm92aWRlcyB0aGUgbG9jYXRpb24gb2YgdGhlXG4gICAqICAgICBXYXNtIGJpbmFyeSBhbmQgaXRzIGxvYWRlci5cbiAgICogQHBhcmFtIGF1ZGlvQ2xhc3NpZmllck9wdGlvbnMgVGhlIG9wdGlvbnMgZm9yIHRoZSBhdWRpbyBjbGFzc2lmaWVyLiBOb3RlXG4gICAqICAgICB0aGF0IGVpdGhlciBhIHBhdGggdG8gdGhlIG1vZGVsIGFzc2V0IG9yIGEgbW9kZWwgYnVmZmVyIG5lZWRzIHRvIGJlXG4gICAqICAgICBwcm92aWRlZCAodmlhIGBiYXNlT3B0aW9uc2ApLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUZyb21PcHRpb25zKFxuICAgICAgd2FzbUZpbGVzZXQ6IFdhc21GaWxlc2V0LCBhdWRpb0NsYXNzaWZpZXJPcHRpb25zOiBBdWRpb0NsYXNzaWZpZXJPcHRpb25zKTpcbiAgICAgIFByb21pc2U8QXVkaW9DbGFzc2lmaWVyPiB7XG4gICAgcmV0dXJuIEF1ZGlvVGFza1J1bm5lci5jcmVhdGVBdWRpb0luc3RhbmNlKFxuICAgICAgICBBdWRpb0NsYXNzaWZpZXIsIHdhc21GaWxlc2V0LCBhdWRpb0NsYXNzaWZpZXJPcHRpb25zKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgV2FzbSBydW50aW1lIGFuZCBjcmVhdGVzIGEgbmV3IGF1ZGlvIGNsYXNzaWZpZXIgYmFzZWQgb25cbiAgICogdGhlIHByb3ZpZGVkIG1vZGVsIGFzc2V0IGJ1ZmZlci5cbiAgICogQHBhcmFtIHdhc21GaWxlc2V0IEEgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCBwcm92aWRlcyB0aGUgbG9jYXRpb24gb2YgdGhlXG4gICAqICAgICBXYXNtIGJpbmFyeSBhbmQgaXRzIGxvYWRlci5cbiAgICogQHBhcmFtIG1vZGVsQXNzZXRCdWZmZXIgQSBiaW5hcnkgcmVwcmVzZW50YXRpb24gb2YgdGhlIG1vZGVsLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUZyb21Nb2RlbEJ1ZmZlcihcbiAgICAgIHdhc21GaWxlc2V0OiBXYXNtRmlsZXNldCxcbiAgICAgIG1vZGVsQXNzZXRCdWZmZXI6IFVpbnQ4QXJyYXkpOiBQcm9taXNlPEF1ZGlvQ2xhc3NpZmllcj4ge1xuICAgIHJldHVybiBBdWRpb1Rhc2tSdW5uZXIuY3JlYXRlQXVkaW9JbnN0YW5jZShcbiAgICAgICAgQXVkaW9DbGFzc2lmaWVyLCB3YXNtRmlsZXNldCwge2Jhc2VPcHRpb25zOiB7bW9kZWxBc3NldEJ1ZmZlcn19KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbml0aWFsaXplcyB0aGUgV2FzbSBydW50aW1lIGFuZCBjcmVhdGVzIGEgbmV3IGF1ZGlvIGNsYXNzaWZpZXIgYmFzZWQgb25cbiAgICogdGhlIHBhdGggdG8gdGhlIG1vZGVsIGFzc2V0LlxuICAgKiBAcGFyYW0gd2FzbUZpbGVzZXQgQSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGF0IHByb3ZpZGVzIHRoZSBsb2NhdGlvbiBvZiB0aGVcbiAgICogICAgIFdhc20gYmluYXJ5IGFuZCBpdHMgbG9hZGVyLlxuICAgKiBAcGFyYW0gbW9kZWxBc3NldFBhdGggVGhlIHBhdGggdG8gdGhlIG1vZGVsIGFzc2V0LlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUZyb21Nb2RlbFBhdGgoXG4gICAgICB3YXNtRmlsZXNldDogV2FzbUZpbGVzZXQsXG4gICAgICBtb2RlbEFzc2V0UGF0aDogc3RyaW5nKTogUHJvbWlzZTxBdWRpb0NsYXNzaWZpZXI+IHtcbiAgICByZXR1cm4gQXVkaW9UYXNrUnVubmVyLmNyZWF0ZUluc3RhbmNlKFxuICAgICAgICBBdWRpb0NsYXNzaWZpZXIsIC8qIGNhbnZhcz0gKi8gbnVsbCwgd2FzbUZpbGVzZXQsXG4gICAgICAgIHtiYXNlT3B0aW9uczoge21vZGVsQXNzZXRQYXRofX0pO1xuICB9XG5cbiAgLyoqIEBoaWRlY29uc3RydWN0b3IgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgICB3YXNtTW9kdWxlOiBXYXNtTW9kdWxlLFxuICAgICAgZ2xDYW52YXM/OiBIVE1MQ2FudmFzRWxlbWVudHxPZmZzY3JlZW5DYW52YXN8bnVsbCkge1xuICAgIHN1cGVyKG5ldyBDYWNoZWRHcmFwaFJ1bm5lcih3YXNtTW9kdWxlLCBnbENhbnZhcykpO1xuICAgIHRoaXMub3B0aW9ucy5zZXRCYXNlT3B0aW9ucyhuZXcgQmFzZU9wdGlvbnNQcm90bygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgYmFzZU9wdGlvbnMoKTogQmFzZU9wdGlvbnNQcm90byB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRCYXNlT3B0aW9ucygpITtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXQgYmFzZU9wdGlvbnMocHJvdG86IEJhc2VPcHRpb25zUHJvdG8pIHtcbiAgICB0aGlzLm9wdGlvbnMuc2V0QmFzZU9wdGlvbnMocHJvdG8pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbmV3IG9wdGlvbnMgZm9yIHRoZSBhdWRpbyBjbGFzc2lmaWVyLlxuICAgKlxuICAgKiBDYWxsaW5nIGBzZXRPcHRpb25zKClgIHdpdGggYSBzdWJzZXQgb2Ygb3B0aW9ucyBvbmx5IGFmZmVjdHMgdGhvc2Ugb3B0aW9ucy5cbiAgICogWW91IGNhbiByZXNldCBhbiBvcHRpb24gYmFjayB0byBpdHMgZGVmYXVsdCB2YWx1ZSBieSBleHBsaWNpdGx5IHNldHRpbmcgaXRcbiAgICogdG8gYHVuZGVmaW5lZGAuXG4gICAqXG4gICAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIGZvciB0aGUgYXVkaW8gY2xhc3NpZmllci5cbiAgICovXG4gIG92ZXJyaWRlIHNldE9wdGlvbnMob3B0aW9uczogQXVkaW9DbGFzc2lmaWVyT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3B0aW9ucy5zZXRDbGFzc2lmaWVyT3B0aW9ucyhjb252ZXJ0Q2xhc3NpZmllck9wdGlvbnNUb1Byb3RvKFxuICAgICAgICBvcHRpb25zLCB0aGlzLm9wdGlvbnMuZ2V0Q2xhc3NpZmllck9wdGlvbnMoKSkpO1xuICAgIHJldHVybiB0aGlzLmFwcGx5T3B0aW9ucyhvcHRpb25zKTtcbiAgfVxuXG4gIC8vIFRPRE86IEFkZCBhIGNsYXNzaWZ5U3RyZWFtKCkgdGhhdCB0YWtlcyBhIHRpbWVzdGFtcFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhdWRpbyBjbGFzc2lmaWNhdGlvbiBvbiB0aGUgcHJvdmlkZWQgYXVkaW8gY2xpcCBhbmQgd2FpdHNcbiAgICogc3luY2hyb25vdXNseSBmb3IgdGhlIHJlc3BvbnNlLlxuICAgKlxuICAgKiBAcGFyYW0gYXVkaW9EYXRhIEFuIGFycmF5IG9mIHJhdyBhdWRpbyBjYXB0dXJlIGRhdGEsIGxpa2UgZnJvbSBhIGNhbGwgdG9cbiAgICogICAgIGBnZXRDaGFubmVsRGF0YSgpYCBvbiBhbiBBdWRpb0J1ZmZlci5cbiAgICogQHBhcmFtIHNhbXBsZVJhdGUgVGhlIHNhbXBsZSByYXRlIGluIEh6IG9mIHRoZSBwcm92aWRlZCBhdWRpbyBkYXRhLiBJZiBub3RcbiAgICogICAgIHNldCwgZGVmYXVsdHMgdG8gdGhlIHNhbXBsZSByYXRlIHNldCB2aWEgYHNldERlZmF1bHRTYW1wbGVSYXRlKClgIG9yXG4gICAqICAgICBgNDgwMDBgIGlmIG5vIGN1c3RvbSBkZWZhdWx0IHdhcyBzZXQuXG4gICAqIEByZXR1cm4gVGhlIGNsYXNzaWZpY2F0aW9uIHJlc3VsdCBvZiB0aGUgYXVkaW8gZGF0YXNcbiAgICovXG4gIGNsYXNzaWZ5KGF1ZGlvRGF0YTogRmxvYXQzMkFycmF5LCBzYW1wbGVSYXRlPzogbnVtYmVyKTpcbiAgICAgIEF1ZGlvQ2xhc3NpZmllclJlc3VsdFtdIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXVkaW9DbGlwKGF1ZGlvRGF0YSwgc2FtcGxlUmF0ZSk7XG4gIH1cblxuICAvKiogU2VuZHMgYW4gYXVkaW8gcGFja2FnZSB0byB0aGUgZ3JhcGggYW5kIHJldHVybnMgdGhlIGNsYXNzaWZpY2F0aW9ucy4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHByb2Nlc3MoXG4gICAgICBhdWRpb0RhdGE6IEZsb2F0MzJBcnJheSwgc2FtcGxlUmF0ZTogbnVtYmVyLFxuICAgICAgdGltZXN0YW1wTXM6IG51bWJlcik6IEF1ZGlvQ2xhc3NpZmllclJlc3VsdFtdIHtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmFkZERvdWJsZVRvU3RyZWFtKFxuICAgICAgICBzYW1wbGVSYXRlLCBTQU1QTEVfUkFURV9TVFJFQU0sIHRpbWVzdGFtcE1zKTtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmFkZEF1ZGlvVG9TdHJlYW1XaXRoU2hhcGUoXG4gICAgICAgIGF1ZGlvRGF0YSwgLyogbnVtQ2hhbm5lbHM9ICovIDEsIC8qIG51bVNhbXBsZXM9ICovIGF1ZGlvRGF0YS5sZW5ndGgsXG4gICAgICAgIEFVRElPX1NUUkVBTSwgdGltZXN0YW1wTXMpO1xuXG4gICAgdGhpcy5jbGFzc2lmaWNhdGlvblJlc3VsdHMgPSBbXTtcbiAgICB0aGlzLmZpbmlzaFByb2Nlc3NpbmcoKTtcbiAgICByZXR1cm4gWy4uLnRoaXMuY2xhc3NpZmljYXRpb25SZXN1bHRzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBmdW5jdGlvbiBmb3IgY29udmVydGluZyByYXcgZGF0YSBpbnRvIGNsYXNzaWZpY2F0aW9uIHJlc3VsdHMsIGFuZFxuICAgKiBhZGRpbmcgdGhlbSB0byBvdXIgY2xhc3NmaWNhdGlvbiByZXN1bHRzIGxpc3QuXG4gICAqKi9cbiAgcHJpdmF0ZSBhZGRKc0F1ZGlvQ2xhc3NpZmljYXRpb25SZXN1bHRzKGJpbmFyeVByb3RvczogVWludDhBcnJheVtdKTogdm9pZCB7XG4gICAgYmluYXJ5UHJvdG9zLmZvckVhY2goYmluYXJ5UHJvdG8gPT4ge1xuICAgICAgY29uc3QgY2xhc3NpZmljYXRpb25SZXN1bHQgPVxuICAgICAgICAgIENsYXNzaWZpY2F0aW9uUmVzdWx0LmRlc2VyaWFsaXplQmluYXJ5KGJpbmFyeVByb3RvKTtcbiAgICAgIHRoaXMuY2xhc3NpZmljYXRpb25SZXN1bHRzLnB1c2goXG4gICAgICAgICAgY29udmVydEZyb21DbGFzc2lmaWNhdGlvblJlc3VsdFByb3RvKGNsYXNzaWZpY2F0aW9uUmVzdWx0KSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogVXBkYXRlcyB0aGUgTWVkaWFQaXBlIGdyYXBoIGNvbmZpZ3VyYXRpb24uICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZWZyZXNoR3JhcGgoKTogdm9pZCB7XG4gICAgY29uc3QgZ3JhcGhDb25maWcgPSBuZXcgQ2FsY3VsYXRvckdyYXBoQ29uZmlnKCk7XG4gICAgZ3JhcGhDb25maWcuYWRkSW5wdXRTdHJlYW0oQVVESU9fU1RSRUFNKTtcbiAgICBncmFwaENvbmZpZy5hZGRJbnB1dFN0cmVhbShTQU1QTEVfUkFURV9TVFJFQU0pO1xuICAgIGdyYXBoQ29uZmlnLmFkZE91dHB1dFN0cmVhbShUSU1FU1RBTVBFRF9DTEFTU0lGSUNBVElPTlNfU1RSRUFNKTtcblxuICAgIGNvbnN0IGNhbGN1bGF0b3JPcHRpb25zID0gbmV3IENhbGN1bGF0b3JPcHRpb25zKCk7XG4gICAgY2FsY3VsYXRvck9wdGlvbnMuc2V0RXh0ZW5zaW9uKFxuICAgICAgICBBdWRpb0NsYXNzaWZpZXJHcmFwaE9wdGlvbnMuZXh0LCB0aGlzLm9wdGlvbnMpO1xuXG4gICAgLy8gUGVyZm9ybSBhdWRpbyBjbGFzc2lmaWNhdGlvbi4gUHJlLXByb2Nlc3NpbmcgYW5kIHJlc3VsdHMgcG9zdC1wcm9jZXNzaW5nXG4gICAgLy8gYXJlIGJ1aWx0LWluLlxuICAgIGNvbnN0IGNsYXNzaWZpZXJOb2RlID0gbmV3IENhbGN1bGF0b3JHcmFwaENvbmZpZy5Ob2RlKCk7XG4gICAgY2xhc3NpZmllck5vZGUuc2V0Q2FsY3VsYXRvcihNRURJQVBJUEVfR1JBUEgpO1xuICAgIGNsYXNzaWZpZXJOb2RlLmFkZElucHV0U3RyZWFtKCdBVURJTzonICsgQVVESU9fU1RSRUFNKTtcbiAgICBjbGFzc2lmaWVyTm9kZS5hZGRJbnB1dFN0cmVhbSgnU0FNUExFX1JBVEU6JyArIFNBTVBMRV9SQVRFX1NUUkVBTSk7XG4gICAgY2xhc3NpZmllck5vZGUuYWRkT3V0cHV0U3RyZWFtKFxuICAgICAgICAnVElNRVNUQU1QRURfQ0xBU1NJRklDQVRJT05TOicgKyBUSU1FU1RBTVBFRF9DTEFTU0lGSUNBVElPTlNfU1RSRUFNKTtcbiAgICBjbGFzc2lmaWVyTm9kZS5zZXRPcHRpb25zKGNhbGN1bGF0b3JPcHRpb25zKTtcblxuICAgIGdyYXBoQ29uZmlnLmFkZE5vZGUoY2xhc3NpZmllck5vZGUpO1xuXG4gICAgdGhpcy5ncmFwaFJ1bm5lci5hdHRhY2hQcm90b1ZlY3Rvckxpc3RlbmVyKFxuICAgICAgICBUSU1FU1RBTVBFRF9DTEFTU0lGSUNBVElPTlNfU1RSRUFNLCAoYmluYXJ5UHJvdG9zLCB0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICB0aGlzLmFkZEpzQXVkaW9DbGFzc2lmaWNhdGlvblJlc3VsdHMoYmluYXJ5UHJvdG9zKTtcbiAgICAgICAgICB0aGlzLnNldExhdGVzdE91dHB1dFRpbWVzdGFtcCh0aW1lc3RhbXApO1xuICAgICAgICB9KTtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmF0dGFjaEVtcHR5UGFja2V0TGlzdGVuZXIoXG4gICAgICAgIFRJTUVTVEFNUEVEX0NMQVNTSUZJQ0FUSU9OU19TVFJFQU0sIHRpbWVzdGFtcCA9PiB7XG4gICAgICAgICAgdGhpcy5zZXRMYXRlc3RPdXRwdXRUaW1lc3RhbXAodGltZXN0YW1wKTtcbiAgICAgICAgfSk7XG5cbiAgICBjb25zdCBiaW5hcnlHcmFwaCA9IGdyYXBoQ29uZmlnLnNlcmlhbGl6ZUJpbmFyeSgpO1xuICAgIHRoaXMuc2V0R3JhcGgobmV3IFVpbnQ4QXJyYXkoYmluYXJ5R3JhcGgpLCAvKiBpc0JpbmFyeT0gKi8gdHJ1ZSk7XG4gIH1cbn1cblxuXG4iXX0=","// source: mediapipe/tasks/cc/components/processors/proto/embedder_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.tasks.components.processors.proto.EmbedderOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.processors.proto.EmbedderOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.displayName = 'proto.mediapipe.tasks.components.processors.proto.EmbedderOptions';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n l2Normalize: (f = jspb.Message.getBooleanField(msg, 1)) == null ? undefined : f,\n quantize: (f = jspb.Message.getBooleanField(msg, 2)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.processors.proto.EmbedderOptions;\n return proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setL2Normalize(value);\n break;\n case 2:\n var value = /** @type {boolean} */ (reader.readBool());\n msg.setQuantize(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.processors.proto.EmbedderOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {boolean} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBool(\n 1,\n f\n );\n }\n f = /** @type {boolean} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeBool(\n 2,\n f\n );\n }\n};\n\n\n/**\n * optional bool l2_normalize = 1;\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.getL2Normalize = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 1, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.setL2Normalize = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.clearL2Normalize = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.hasL2Normalize = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional bool quantize = 2;\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.getQuantize = function() {\n return /** @type {boolean} */ (jspb.Message.getBooleanFieldWithDefault(this, 2, false));\n};\n\n\n/**\n * @param {boolean} value\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.setQuantize = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} returns this\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.clearQuantize = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.processors.proto.EmbedderOptions.prototype.hasQuantize = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.components.processors.proto);\n","// source: mediapipe/tasks/cc/audio/audio_embedder/proto/audio_embedder_graph_options.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\nvar mediapipe_framework_calculator_pb = require('../../../../../../mediapipe/framework/calculator_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_pb);\nvar mediapipe_framework_calculator_options_pb = require('../../../../../../mediapipe/framework/calculator_options_pb.js');\ngoog.object.extend(proto, mediapipe_framework_calculator_options_pb);\nvar mediapipe_tasks_cc_components_processors_proto_embedder_options_pb = require('../../../../../../mediapipe/tasks/cc/components/processors/proto/embedder_options_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_components_processors_proto_embedder_options_pb);\nvar mediapipe_tasks_cc_core_proto_base_options_pb = require('../../../../../../mediapipe/tasks/cc/core/proto/base_options_pb.js');\ngoog.object.extend(proto, mediapipe_tasks_cc_core_proto_base_options_pb);\ngoog.exportSymbol('proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.displayName = 'proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions';\n}\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.toObject = function(includeInstance, msg) {\n var f, obj = {\n baseOptions: (f = msg.getBaseOptions()) && mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.toObject(includeInstance, f),\n embedderOptions: (f = msg.getEmbedderOptions()) && mediapipe_tasks_cc_components_processors_proto_embedder_options_pb.EmbedderOptions.toObject(includeInstance, f)\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions;\n return proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions;\n reader.readMessage(value,mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.deserializeBinaryFromReader);\n msg.setBaseOptions(value);\n break;\n case 2:\n var value = new mediapipe_tasks_cc_components_processors_proto_embedder_options_pb.EmbedderOptions;\n reader.readMessage(value,mediapipe_tasks_cc_components_processors_proto_embedder_options_pb.EmbedderOptions.deserializeBinaryFromReader);\n msg.setEmbedderOptions(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getBaseOptions();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions.serializeBinaryToWriter\n );\n }\n f = message.getEmbedderOptions();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n mediapipe_tasks_cc_components_processors_proto_embedder_options_pb.EmbedderOptions.serializeBinaryToWriter\n );\n }\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions>}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext = new jspb.ExtensionFieldInfo(\n 487277289,\n {ext: 0},\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[487277289] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.serializeBinaryToWriter,\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[487277289] = proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext;\n\n/**\n * optional mediapipe.tasks.core.proto.BaseOptions base_options = 1;\n * @return {?proto.mediapipe.tasks.core.proto.BaseOptions}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.getBaseOptions = function() {\n return /** @type{?proto.mediapipe.tasks.core.proto.BaseOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_core_proto_base_options_pb.BaseOptions, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.core.proto.BaseOptions|undefined} value\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} returns this\n*/\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.setBaseOptions = function(value) {\n return jspb.Message.setWrapperField(this, 1, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.clearBaseOptions = function() {\n return this.setBaseOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.hasBaseOptions = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional mediapipe.tasks.components.processors.proto.EmbedderOptions embedder_options = 2;\n * @return {?proto.mediapipe.tasks.components.processors.proto.EmbedderOptions}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.getEmbedderOptions = function() {\n return /** @type{?proto.mediapipe.tasks.components.processors.proto.EmbedderOptions} */ (\n jspb.Message.getWrapperField(this, mediapipe_tasks_cc_components_processors_proto_embedder_options_pb.EmbedderOptions, 2));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.components.processors.proto.EmbedderOptions|undefined} value\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} returns this\n*/\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.setEmbedderOptions = function(value) {\n return jspb.Message.setWrapperField(this, 2, value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions} returns this\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.clearEmbedderOptions = function() {\n return this.setEmbedderOptions(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.prototype.hasEmbedderOptions = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n\n/**\n * A tuple of {field number, class constructor} for the extension\n * field named `ext`.\n * @type {!jspb.ExtensionFieldInfo<!proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions>}\n */\nproto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext = new jspb.ExtensionFieldInfo(\n 487277289,\n {ext: 0},\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions,\n /** @type {?function((boolean|undefined),!jspb.Message=): !Object} */ (\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.toObject),\n 0);\n\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensionsBinary[487277289] = new jspb.ExtensionFieldBinaryInfo(\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext,\n jspb.BinaryReader.prototype.readMessage,\n jspb.BinaryWriter.prototype.writeMessage,\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.serializeBinaryToWriter,\n proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.deserializeBinaryFromReader,\n false);\n// This registers the extension field with the extended class, so that\n// toObject() will function correctly.\nmediapipe_framework_calculator_options_pb.CalculatorOptions.extensions[487277289] = proto.mediapipe.tasks.audio.audio_embedder.proto.AudioEmbedderGraphOptions.ext;\n\ngoog.object.extend(exports, proto.mediapipe.tasks.audio.audio_embedder.proto);\n","// source: mediapipe/tasks/cc/components/containers/proto/embeddings.proto\n/**\n * @fileoverview\n * @enhanceable\n * @suppress {missingRequire} reports error on implicit type usages.\n * @suppress {messageConventions} JS Compiler reports an error if a variable or\n * field starts with 'MSG_' and isn't a translatable message.\n * @public\n */\n// GENERATED CODE -- DO NOT EDIT!\n/* eslint-disable */\n// @ts-nocheck\n\nvar jspb = require('google-protobuf');\nvar goog = jspb;\nvar global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof window !== 'undefined' && window) ||\n (typeof global !== 'undefined' && global) ||\n (typeof self !== 'undefined' && self) ||\n (function () { return this; }).call(null) ||\n Function('return this')();\n\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.Embedding', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.EmbeddingResult', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.FloatEmbedding', null, global);\ngoog.exportSymbol('proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding', null, global);\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.FloatEmbedding, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.displayName = 'proto.mediapipe.tasks.components.containers.proto.FloatEmbedding';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.displayName = 'proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, null, proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.Embedding, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.Embedding.displayName = 'proto.mediapipe.tasks.components.containers.proto.Embedding';\n}\n/**\n * Generated by JsPbCodeGenerator.\n * @param {Array=} opt_data Optional initial data array, typically from a\n * server response, or constructed directly in Javascript. The array is used\n * in place and becomes part of the constructed object. It is not cloned.\n * If no data is provided, the constructed object will be empty, but still\n * valid.\n * @extends {jspb.Message}\n * @constructor\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult = function(opt_data) {\n jspb.Message.initialize(this, opt_data, 0, -1, proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.repeatedFields_, null);\n};\ngoog.inherits(proto.mediapipe.tasks.components.containers.proto.EmbeddingResult, jspb.Message);\nif (goog.DEBUG && !COMPILED) {\n /**\n * @public\n * @override\n */\n proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.displayName = 'proto.mediapipe.tasks.components.containers.proto.EmbeddingResult';\n}\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject = function(includeInstance, msg) {\n var f, obj = {\n valuesList: (f = jspb.Message.getRepeatedFloatingPointField(msg, 1)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.FloatEmbedding;\n return proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var values = /** @type {!Array<number>} */ (reader.isDelimited() ? reader.readPackedFloat() : [reader.readFloat()]);\n for (var i = 0; i < values.length; i++) {\n msg.addValues(values[i]);\n }\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getValuesList();\n if (f.length > 0) {\n writer.writePackedFloat(\n 1,\n f\n );\n }\n};\n\n\n/**\n * repeated float values = 1;\n * @return {!Array<number>}\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.getValuesList = function() {\n return /** @type {!Array<number>} */ (jspb.Message.getRepeatedFloatingPointField(this, 1));\n};\n\n\n/**\n * @param {!Array<number>} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.setValuesList = function(value) {\n return jspb.Message.setField(this, 1, value || []);\n};\n\n\n/**\n * @param {number} value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.addValues = function(value, opt_index) {\n return jspb.Message.addToRepeatedField(this, 1, value, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.FloatEmbedding.prototype.clearValuesList = function() {\n return this.setValuesList([]);\n};\n\n\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject = function(includeInstance, msg) {\n var f, obj = {\n values: msg.getValues_asB64()\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding;\n return proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = /** @type {!Uint8Array} */ (reader.readBytes());\n msg.setValues(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = /** @type {!(string|Uint8Array)} */ (jspb.Message.getField(message, 1));\n if (f != null) {\n writer.writeBytes(\n 1,\n f\n );\n }\n};\n\n\n/**\n * optional bytes values = 1;\n * @return {!(string|Uint8Array)}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues = function() {\n return /** @type {!(string|Uint8Array)} */ (jspb.Message.getFieldWithDefault(this, 1, \"\"));\n};\n\n\n/**\n * optional bytes values = 1;\n * This is a type-conversion wrapper around `getValues()`\n * @return {string}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues_asB64 = function() {\n return /** @type {string} */ (jspb.Message.bytesAsB64(\n this.getValues()));\n};\n\n\n/**\n * optional bytes values = 1;\n * Note that Uint8Array is not supported on all browsers.\n * @see http://caniuse.com/Uint8Array\n * This is a type-conversion wrapper around `getValues()`\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.getValues_asU8 = function() {\n return /** @type {!Uint8Array} */ (jspb.Message.bytesAsU8(\n this.getValues()));\n};\n\n\n/**\n * @param {!(string|Uint8Array)} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.setValues = function(value) {\n return jspb.Message.setField(this, 1, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.clearValues = function() {\n return jspb.Message.setField(this, 1, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.prototype.hasValues = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n\n/**\n * Oneof group definitions for this message. Each group defines the field\n * numbers belonging to that group. When of these fields' value is set, all\n * other fields in the group are cleared. During deserialization, if multiple\n * fields are encountered for a group, only the last value seen will be kept.\n * @private {!Array<!Array<number>>}\n * @const\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_ = [[1,2]];\n\n/**\n * @enum {number}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase = {\n EMBEDDING_NOT_SET: 0,\n FLOAT_EMBEDDING: 1,\n QUANTIZED_EMBEDDING: 2\n};\n\n/**\n * @return {proto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getEmbeddingCase = function() {\n return /** @type {proto.mediapipe.tasks.components.containers.proto.Embedding.EmbeddingCase} */(jspb.Message.computeOneofCase(this, proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0]));\n};\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.Embedding.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.Embedding} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.toObject = function(includeInstance, msg) {\n var f, obj = {\n floatEmbedding: (f = msg.getFloatEmbedding()) && proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.toObject(includeInstance, f),\n quantizedEmbedding: (f = msg.getQuantizedEmbedding()) && proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.toObject(includeInstance, f),\n headIndex: (f = jspb.Message.getField(msg, 3)) == null ? undefined : f,\n headName: (f = jspb.Message.getField(msg, 4)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.Embedding;\n return proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.Embedding} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.tasks.components.containers.proto.FloatEmbedding;\n reader.readMessage(value,proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.deserializeBinaryFromReader);\n msg.setFloatEmbedding(value);\n break;\n case 2:\n var value = new proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding;\n reader.readMessage(value,proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.deserializeBinaryFromReader);\n msg.setQuantizedEmbedding(value);\n break;\n case 3:\n var value = /** @type {number} */ (reader.readInt32());\n msg.setHeadIndex(value);\n break;\n case 4:\n var value = /** @type {string} */ (reader.readString());\n msg.setHeadName(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.Embedding} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getFloatEmbedding();\n if (f != null) {\n writer.writeMessage(\n 1,\n f,\n proto.mediapipe.tasks.components.containers.proto.FloatEmbedding.serializeBinaryToWriter\n );\n }\n f = message.getQuantizedEmbedding();\n if (f != null) {\n writer.writeMessage(\n 2,\n f,\n proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding.serializeBinaryToWriter\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 3));\n if (f != null) {\n writer.writeInt32(\n 3,\n f\n );\n }\n f = /** @type {string} */ (jspb.Message.getField(message, 4));\n if (f != null) {\n writer.writeString(\n 4,\n f\n );\n }\n};\n\n\n/**\n * optional FloatEmbedding float_embedding = 1;\n * @return {?proto.mediapipe.tasks.components.containers.proto.FloatEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getFloatEmbedding = function() {\n return /** @type{?proto.mediapipe.tasks.components.containers.proto.FloatEmbedding} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.tasks.components.containers.proto.FloatEmbedding, 1));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.components.containers.proto.FloatEmbedding|undefined} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n*/\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setFloatEmbedding = function(value) {\n return jspb.Message.setOneofWrapperField(this, 1, proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearFloatEmbedding = function() {\n return this.setFloatEmbedding(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasFloatEmbedding = function() {\n return jspb.Message.getField(this, 1) != null;\n};\n\n\n/**\n * optional QuantizedEmbedding quantized_embedding = 2;\n * @return {?proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getQuantizedEmbedding = function() {\n return /** @type{?proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding} */ (\n jspb.Message.getWrapperField(this, proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding, 2));\n};\n\n\n/**\n * @param {?proto.mediapipe.tasks.components.containers.proto.QuantizedEmbedding|undefined} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n*/\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setQuantizedEmbedding = function(value) {\n return jspb.Message.setOneofWrapperField(this, 2, proto.mediapipe.tasks.components.containers.proto.Embedding.oneofGroups_[0], value);\n};\n\n\n/**\n * Clears the message field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearQuantizedEmbedding = function() {\n return this.setQuantizedEmbedding(undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasQuantizedEmbedding = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\n/**\n * optional int32 head_index = 3;\n * @return {number}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getHeadIndex = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 3, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setHeadIndex = function(value) {\n return jspb.Message.setField(this, 3, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearHeadIndex = function() {\n return jspb.Message.setField(this, 3, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasHeadIndex = function() {\n return jspb.Message.getField(this, 3) != null;\n};\n\n\n/**\n * optional string head_name = 4;\n * @return {string}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.getHeadName = function() {\n return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, \"\"));\n};\n\n\n/**\n * @param {string} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.setHeadName = function(value) {\n return jspb.Message.setField(this, 4, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.clearHeadName = function() {\n return jspb.Message.setField(this, 4, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.Embedding.prototype.hasHeadName = function() {\n return jspb.Message.getField(this, 4) != null;\n};\n\n\n\n/**\n * List of repeated fields within this message type.\n * @private {!Array<number>}\n * @const\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.repeatedFields_ = [1];\n\n\n\nif (jspb.Message.GENERATE_TO_OBJECT) {\n/**\n * Creates an object representation of this proto.\n * Field names that are reserved in JavaScript and will be renamed to pb_name.\n * Optional fields that are not set will be set to undefined.\n * To access a reserved field use, foo.pb_<name>, eg, foo.pb_default.\n * For the list of reserved names please see:\n * net/proto2/compiler/js/internal/generator.cc#kKeyword.\n * @param {boolean=} opt_includeInstance Deprecated. whether to include the\n * JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @return {!Object}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.toObject = function(opt_includeInstance) {\n return proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.toObject(opt_includeInstance, this);\n};\n\n\n/**\n * Static version of the {@see toObject} method.\n * @param {boolean|undefined} includeInstance Deprecated. Whether to include\n * the JSPB instance for transitional soy proto support:\n * http://goto/soy-param-migration\n * @param {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} msg The msg instance to transform.\n * @return {!Object}\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.toObject = function(includeInstance, msg) {\n var f, obj = {\n embeddingsList: jspb.Message.toObjectList(msg.getEmbeddingsList(),\n proto.mediapipe.tasks.components.containers.proto.Embedding.toObject, includeInstance),\n timestampMs: (f = jspb.Message.getField(msg, 2)) == null ? undefined : f\n };\n\n if (includeInstance) {\n obj.$jspbMessageInstance = msg;\n }\n return obj;\n};\n}\n\n\n/**\n * Deserializes binary data (in protobuf wire format).\n * @param {jspb.ByteSource} bytes The bytes to deserialize.\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinary = function(bytes) {\n var reader = new jspb.BinaryReader(bytes);\n var msg = new proto.mediapipe.tasks.components.containers.proto.EmbeddingResult;\n return proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinaryFromReader(msg, reader);\n};\n\n\n/**\n * Deserializes binary data (in protobuf wire format) from the\n * given reader into the given message object.\n * @param {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} msg The message object to deserialize into.\n * @param {!jspb.BinaryReader} reader The BinaryReader to use.\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.deserializeBinaryFromReader = function(msg, reader) {\n while (reader.nextField()) {\n if (reader.isEndGroup()) {\n break;\n }\n var field = reader.getFieldNumber();\n switch (field) {\n case 1:\n var value = new proto.mediapipe.tasks.components.containers.proto.Embedding;\n reader.readMessage(value,proto.mediapipe.tasks.components.containers.proto.Embedding.deserializeBinaryFromReader);\n msg.addEmbeddings(value);\n break;\n case 2:\n var value = /** @type {number} */ (reader.readInt64());\n msg.setTimestampMs(value);\n break;\n default:\n reader.skipField();\n break;\n }\n }\n return msg;\n};\n\n\n/**\n * Serializes the message to binary data (in protobuf wire format).\n * @return {!Uint8Array}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.serializeBinary = function() {\n var writer = new jspb.BinaryWriter();\n proto.mediapipe.tasks.components.containers.proto.EmbeddingResult.serializeBinaryToWriter(this, writer);\n return writer.getResultBuffer();\n};\n\n\n/**\n * Serializes the given message to binary data (in protobuf wire\n * format), writing to the given BinaryWriter.\n * @param {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} message\n * @param {!jspb.BinaryWriter} writer\n * @suppress {unusedLocalVariables} f is only used for nested messages\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.serializeBinaryToWriter = function(message, writer) {\n var f = undefined;\n f = message.getEmbeddingsList();\n if (f.length > 0) {\n writer.writeRepeatedMessage(\n 1,\n f,\n proto.mediapipe.tasks.components.containers.proto.Embedding.serializeBinaryToWriter\n );\n }\n f = /** @type {number} */ (jspb.Message.getField(message, 2));\n if (f != null) {\n writer.writeInt64(\n 2,\n f\n );\n }\n};\n\n\n/**\n * repeated Embedding embeddings = 1;\n * @return {!Array<!proto.mediapipe.tasks.components.containers.proto.Embedding>}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.getEmbeddingsList = function() {\n return /** @type{!Array<!proto.mediapipe.tasks.components.containers.proto.Embedding>} */ (\n jspb.Message.getRepeatedWrapperField(this, proto.mediapipe.tasks.components.containers.proto.Embedding, 1));\n};\n\n\n/**\n * @param {!Array<!proto.mediapipe.tasks.components.containers.proto.Embedding>} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} returns this\n*/\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.setEmbeddingsList = function(value) {\n return jspb.Message.setRepeatedWrapperField(this, 1, value);\n};\n\n\n/**\n * @param {!proto.mediapipe.tasks.components.containers.proto.Embedding=} opt_value\n * @param {number=} opt_index\n * @return {!proto.mediapipe.tasks.components.containers.proto.Embedding}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.addEmbeddings = function(opt_value, opt_index) {\n return jspb.Message.addToRepeatedWrapperField(this, 1, opt_value, proto.mediapipe.tasks.components.containers.proto.Embedding, opt_index);\n};\n\n\n/**\n * Clears the list making it empty but non-null.\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.clearEmbeddingsList = function() {\n return this.setEmbeddingsList([]);\n};\n\n\n/**\n * optional int64 timestamp_ms = 2;\n * @return {number}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.getTimestampMs = function() {\n return /** @type {number} */ (jspb.Message.getFieldWithDefault(this, 2, 0));\n};\n\n\n/**\n * @param {number} value\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.setTimestampMs = function(value) {\n return jspb.Message.setField(this, 2, value);\n};\n\n\n/**\n * Clears the field making it undefined.\n * @return {!proto.mediapipe.tasks.components.containers.proto.EmbeddingResult} returns this\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.clearTimestampMs = function() {\n return jspb.Message.setField(this, 2, undefined);\n};\n\n\n/**\n * Returns whether this field is set.\n * @return {boolean}\n */\nproto.mediapipe.tasks.components.containers.proto.EmbeddingResult.prototype.hasTimestampMs = function() {\n return jspb.Message.getField(this, 2) != null;\n};\n\n\ngoog.object.extend(exports, proto.mediapipe.tasks.components.containers.proto);\n","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertEmbedderOptionsToProto = void 0;\nconst embedder_options_pb_1 = require(\"../../../../tasks/cc/components/processors/proto/embedder_options_pb\");\n/**\n * Converts a EmbedderOptions object to its Proto representation, optionally\n * based on existing definition.\n * @param options The options object to convert to a Proto. Only options that\n * are expliclty provided are set.\n * @param baseOptions A base object that options can be merged into.\n */\nfunction convertEmbedderOptionsToProto(options, baseOptions) {\n const embedderOptions = baseOptions ? baseOptions.clone() : new embedder_options_pb_1.EmbedderOptions();\n if (options.l2Normalize !== undefined) {\n embedderOptions.setL2Normalize(options.l2Normalize);\n }\n else if ('l2Normalize' in options) { // Check for undefined\n embedderOptions.clearL2Normalize();\n }\n if (options.quantize !== undefined) {\n embedderOptions.setQuantize(options.quantize);\n }\n else if ('quantize' in options) { // Check for undefined\n embedderOptions.clearQuantize();\n }\n return embedderOptions;\n}\nexports.convertEmbedderOptionsToProto = convertEmbedderOptionsToProto;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZXJfb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhcGlwZS90YXNrcy93ZWIvY29tcG9uZW50cy9wcm9jZXNzb3JzL2VtYmVkZGVyX29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHOzs7QUFFSCw4R0FBNkg7QUFHN0g7Ozs7OztHQU1HO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQ3pDLE9BQXdCLEVBQ3hCLFdBQWtDO0lBQ3BDLE1BQU0sZUFBZSxHQUNqQixXQUFXLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxxQ0FBb0IsRUFBRSxDQUFDO0lBRW5FLElBQUksT0FBTyxDQUFDLFdBQVcsS0FBSyxTQUFTLEVBQUU7UUFDckMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7S0FDckQ7U0FBTSxJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUUsRUFBRyxzQkFBc0I7UUFDNUQsZUFBZSxDQUFDLGdCQUFnQixFQUFFLENBQUM7S0FDcEM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLEtBQUssU0FBUyxFQUFFO1FBQ2xDLGVBQWUsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQy9DO1NBQU0sSUFBSSxVQUFVLElBQUksT0FBTyxFQUFFLEVBQUcsc0JBQXNCO1FBQ3pELGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztLQUNqQztJQUVELE9BQU8sZUFBZSxDQUFDO0FBQ3pCLENBQUM7QUFuQkQsc0VBbUJDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RW1iZWRkZXJPcHRpb25zIGFzIEVtYmVkZGVyT3B0aW9uc1Byb3RvfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy9jYy9jb21wb25lbnRzL3Byb2Nlc3NvcnMvcHJvdG8vZW1iZWRkZXJfb3B0aW9uc19wYic7XG5pbXBvcnQge0VtYmVkZGVyT3B0aW9uc30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvZW1iZWRkZXJfb3B0aW9ucyc7XG5cbi8qKlxuICogQ29udmVydHMgYSBFbWJlZGRlck9wdGlvbnMgb2JqZWN0IHRvIGl0cyBQcm90byByZXByZXNlbnRhdGlvbiwgb3B0aW9uYWxseVxuICogYmFzZWQgb24gZXhpc3RpbmcgZGVmaW5pdGlvbi5cbiAqIEBwYXJhbSBvcHRpb25zIFRoZSBvcHRpb25zIG9iamVjdCB0byBjb252ZXJ0IHRvIGEgUHJvdG8uIE9ubHkgb3B0aW9ucyB0aGF0XG4gKiAgICAgYXJlIGV4cGxpY2x0eSBwcm92aWRlZCBhcmUgc2V0LlxuICogQHBhcmFtIGJhc2VPcHRpb25zIEEgYmFzZSBvYmplY3QgdGhhdCBvcHRpb25zIGNhbiBiZSBtZXJnZWQgaW50by5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbnZlcnRFbWJlZGRlck9wdGlvbnNUb1Byb3RvKFxuICAgIG9wdGlvbnM6IEVtYmVkZGVyT3B0aW9ucyxcbiAgICBiYXNlT3B0aW9ucz86IEVtYmVkZGVyT3B0aW9uc1Byb3RvKTogRW1iZWRkZXJPcHRpb25zUHJvdG8ge1xuICBjb25zdCBlbWJlZGRlck9wdGlvbnMgPVxuICAgICAgYmFzZU9wdGlvbnMgPyBiYXNlT3B0aW9ucy5jbG9uZSgpIDogbmV3IEVtYmVkZGVyT3B0aW9uc1Byb3RvKCk7XG5cbiAgaWYgKG9wdGlvbnMubDJOb3JtYWxpemUgIT09IHVuZGVmaW5lZCkge1xuICAgIGVtYmVkZGVyT3B0aW9ucy5zZXRMMk5vcm1hbGl6ZShvcHRpb25zLmwyTm9ybWFsaXplKTtcbiAgfSBlbHNlIGlmICgnbDJOb3JtYWxpemUnIGluIG9wdGlvbnMpIHsgIC8vIENoZWNrIGZvciB1bmRlZmluZWRcbiAgICBlbWJlZGRlck9wdGlvbnMuY2xlYXJMMk5vcm1hbGl6ZSgpO1xuICB9XG5cbiAgaWYgKG9wdGlvbnMucXVhbnRpemUgIT09IHVuZGVmaW5lZCkge1xuICAgIGVtYmVkZGVyT3B0aW9ucy5zZXRRdWFudGl6ZShvcHRpb25zLnF1YW50aXplKTtcbiAgfSBlbHNlIGlmICgncXVhbnRpemUnIGluIG9wdGlvbnMpIHsgIC8vIENoZWNrIGZvciB1bmRlZmluZWRcbiAgICBlbWJlZGRlck9wdGlvbnMuY2xlYXJRdWFudGl6ZSgpO1xuICB9XG5cbiAgcmV0dXJuIGVtYmVkZGVyT3B0aW9ucztcbn1cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.convertFromEmbeddingResultProto = void 0;\nconst DEFAULT_INDEX = -1;\n/**\n * Converts an Embedding proto to the Embedding object.\n */\nfunction convertFromEmbeddingsProto(source) {\n var _a, _b, _c, _d;\n const embedding = {\n headIndex: (_a = source.getHeadIndex()) !== null && _a !== void 0 ? _a : DEFAULT_INDEX,\n headName: (_b = source.getHeadName()) !== null && _b !== void 0 ? _b : '',\n };\n if (source.hasFloatEmbedding()) {\n embedding.floatEmbedding = source.getFloatEmbedding().getValuesList();\n }\n else {\n const encodedValue = (_d = (_c = source.getQuantizedEmbedding()) === null || _c === void 0 ? void 0 : _c.getValues()) !== null && _d !== void 0 ? _d : '';\n embedding.quantizedEmbedding = typeof encodedValue == 'string' ?\n Uint8Array.from(atob(encodedValue), c => c.charCodeAt(0)) : encodedValue;\n }\n return embedding;\n}\n/**\n * Converts an EmbedderResult proto to an EmbeddingResult object.\n */\nfunction convertFromEmbeddingResultProto(embeddingResult) {\n const result = {\n embeddings: embeddingResult.getEmbeddingsList().map(e => convertFromEmbeddingsProto(e)),\n timestampMs: embeddingResult.getTimestampMs(),\n };\n return result;\n}\nexports.convertFromEmbeddingResultProto = convertFromEmbeddingResultProto;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1iZWRkZXJfcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbWVkaWFwaXBlL3Rhc2tzL3dlYi9jb21wb25lbnRzL3Byb2Nlc3NvcnMvZW1iZWRkZXJfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBS0gsTUFBTSxhQUFhLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFFekI7O0dBRUc7QUFDSCxTQUFTLDBCQUEwQixDQUFDLE1BQXNCOztJQUN4RCxNQUFNLFNBQVMsR0FBYztRQUMzQixTQUFTLEVBQUUsTUFBQSxNQUFNLENBQUMsWUFBWSxFQUFFLG1DQUFJLGFBQWE7UUFDakQsUUFBUSxFQUFFLE1BQUEsTUFBTSxDQUFDLFdBQVcsRUFBRSxtQ0FBSSxFQUFFO0tBQ3JDLENBQUM7SUFFRixJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFO1FBQzlCLFNBQVMsQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixFQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7S0FDeEU7U0FBTTtRQUNILE1BQU0sWUFBWSxHQUFHLE1BQUEsTUFBQSxNQUFNLENBQUMscUJBQXFCLEVBQUUsMENBQUUsU0FBUyxFQUFFLG1DQUFJLEVBQUUsQ0FBQztRQUN2RSxTQUFTLENBQUMsa0JBQWtCLEdBQUcsT0FBTyxZQUFZLElBQUksUUFBUSxDQUFDLENBQUM7WUFDNUQsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQztLQUNoRjtJQUVELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLCtCQUErQixDQUMzQyxlQUFxQztJQUN2QyxNQUFNLE1BQU0sR0FBb0I7UUFDOUIsVUFBVSxFQUFFLGVBQWUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FDL0MsQ0FBQyxDQUFDLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN2QyxXQUFXLEVBQUUsZUFBZSxDQUFDLGNBQWMsRUFBRTtLQUM5QyxDQUFDO0lBQ0YsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQVJELDBFQVFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RW1iZWRkaW5nIGFzIEVtYmVkZGluZ1Byb3RvLCBFbWJlZGRpbmdSZXN1bHQgYXMgRW1iZWRkaW5nUmVzdWx0UHJvdG99IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL2NjL2NvbXBvbmVudHMvY29udGFpbmVycy9wcm90by9lbWJlZGRpbmdzX3BiJztcbmltcG9ydCB7RW1iZWRkaW5nLCBFbWJlZGRpbmdSZXN1bHR9IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvZW1iZWRkaW5nX3Jlc3VsdCc7XG5cbmNvbnN0IERFRkFVTFRfSU5ERVggPSAtMTtcblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBFbWJlZGRpbmcgcHJvdG8gdG8gdGhlIEVtYmVkZGluZyBvYmplY3QuXG4gKi9cbmZ1bmN0aW9uIGNvbnZlcnRGcm9tRW1iZWRkaW5nc1Byb3RvKHNvdXJjZTogRW1iZWRkaW5nUHJvdG8pOiBFbWJlZGRpbmcge1xuICBjb25zdCBlbWJlZGRpbmc6IEVtYmVkZGluZyA9IHtcbiAgICBoZWFkSW5kZXg6IHNvdXJjZS5nZXRIZWFkSW5kZXgoKSA/PyBERUZBVUxUX0lOREVYLFxuICAgIGhlYWROYW1lOiBzb3VyY2UuZ2V0SGVhZE5hbWUoKSA/PyAnJyxcbiAgfTtcblxuICBpZiAoc291cmNlLmhhc0Zsb2F0RW1iZWRkaW5nKCkpIHtcbiAgICBlbWJlZGRpbmcuZmxvYXRFbWJlZGRpbmcgPSBzb3VyY2UuZ2V0RmxvYXRFbWJlZGRpbmcoKSEuZ2V0VmFsdWVzTGlzdCgpO1xuICB9IGVsc2Uge1xuICAgICAgY29uc3QgZW5jb2RlZFZhbHVlID0gc291cmNlLmdldFF1YW50aXplZEVtYmVkZGluZygpPy5nZXRWYWx1ZXMoKSA/PyAnJztcbiAgICAgIGVtYmVkZGluZy5xdWFudGl6ZWRFbWJlZGRpbmcgPSB0eXBlb2YgZW5jb2RlZFZhbHVlID09ICdzdHJpbmcnID9cbiAgICAgICAgICBVaW50OEFycmF5LmZyb20oYXRvYihlbmNvZGVkVmFsdWUpLCBjID0+IGMuY2hhckNvZGVBdCgwKSkgOiBlbmNvZGVkVmFsdWU7XG4gIH1cblxuICByZXR1cm4gZW1iZWRkaW5nO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIEVtYmVkZGVyUmVzdWx0IHByb3RvIHRvIGFuIEVtYmVkZGluZ1Jlc3VsdCBvYmplY3QuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb252ZXJ0RnJvbUVtYmVkZGluZ1Jlc3VsdFByb3RvKFxuICAgIGVtYmVkZGluZ1Jlc3VsdDogRW1iZWRkaW5nUmVzdWx0UHJvdG8pOiBFbWJlZGRpbmdSZXN1bHQge1xuICBjb25zdCByZXN1bHQ6IEVtYmVkZGluZ1Jlc3VsdCA9IHtcbiAgICBlbWJlZGRpbmdzOiBlbWJlZGRpbmdSZXN1bHQuZ2V0RW1iZWRkaW5nc0xpc3QoKS5tYXAoXG4gICAgICAgIGUgPT4gY29udmVydEZyb21FbWJlZGRpbmdzUHJvdG8oZSkpLFxuICAgIHRpbWVzdGFtcE1zOiBlbWJlZGRpbmdSZXN1bHQuZ2V0VGltZXN0YW1wTXMoKSxcbiAgfTtcbiAgcmV0dXJuIHJlc3VsdDtcbn1cbiJdfQ==","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZW1iZWRkZXJfb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF1ZGlvX2VtYmVkZGVyX29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7RW1iZWRkZXJPcHRpb25zfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy93ZWIvY29yZS9lbWJlZGRlcl9vcHRpb25zJztcbmltcG9ydCB7VGFza1J1bm5lck9wdGlvbnN9IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9jb3JlL3Rhc2tfcnVubmVyX29wdGlvbnMnO1xuXG4vKiogT3B0aW9ucyB0byBjb25maWd1cmUgdGhlIE1lZGlhUGlwZSBBdWRpbyBFbWJlZGRlciBUYXNrICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgQXVkaW9FbWJlZGRlck9wdGlvbnMgZXh0ZW5kcyBFbWJlZGRlck9wdGlvbnMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXNrUnVubmVyT3B0aW9ucyB7fVxuIl19","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZW1iZWRkZXJfcmVzdWx0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXVkaW9fZW1iZWRkZXJfcmVzdWx0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IDIwMjIgVGhlIE1lZGlhUGlwZSBBdXRob3JzLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5leHBvcnQge0VtYmVkZGluZywgRW1iZWRkaW5nUmVzdWx0IGFzIEF1ZGlvRW1iZWRkZXJSZXN1bHR9IGZyb20gJy4uLy4uLy4uLy4uL3Rhc2tzL3dlYi9jb21wb25lbnRzL2NvbnRhaW5lcnMvZW1iZWRkaW5nX3Jlc3VsdCc7XG4iXX0=","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AudioEmbedder = void 0;\nconst calculator_pb_1 = require(\"../../../../framework/calculator_pb\");\nconst calculator_options_pb_1 = require(\"../../../../framework/calculator_options_pb\");\nconst audio_embedder_graph_options_pb_1 = require(\"../../../../tasks/cc/audio/audio_embedder/proto/audio_embedder_graph_options_pb\");\nconst embeddings_pb_1 = require(\"../../../../tasks/cc/components/containers/proto/embeddings_pb\");\nconst base_options_pb_1 = require(\"../../../../tasks/cc/core/proto/base_options_pb\");\nconst audio_task_runner_1 = require(\"../../../../tasks/web/audio/core/audio_task_runner\");\nconst embedder_options_1 = require(\"../../../../tasks/web/components/processors/embedder_options\");\nconst embedder_result_1 = require(\"../../../../tasks/web/components/processors/embedder_result\");\nconst task_runner_1 = require(\"../../../../tasks/web/core/task_runner\");\n__exportStar(require(\"./audio_embedder_options\"), exports);\n__exportStar(require(\"./audio_embedder_result\"), exports);\n// The OSS JS API does not support the builder pattern.\n// tslint:disable:jspb-use-builder-pattern\nconst AUDIO_STREAM = 'audio_in';\nconst SAMPLE_RATE_STREAM = 'sample_rate';\nconst EMBEDDINGS_STREAM = 'embeddings_out';\nconst TIMESTAMPED_EMBEDDINGS_STREAM = 'timestamped_embeddings_out';\nconst AUDIO_EMBEDDER_CALCULATOR = 'mediapipe.tasks.audio.audio_embedder.AudioEmbedderGraph';\n/** Performs embedding extraction on audio. */\nclass AudioEmbedder extends audio_task_runner_1.AudioTaskRunner {\n /**\n * Initializes the Wasm runtime and creates a new audio embedder from the\n * provided options.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param audioEmbedderOptions The options for the audio embedder. Note that\n * either a path to the TFLite model or the model itself needs to be\n * provided (via `baseOptions`).\n */\n static createFromOptions(wasmFileset, audioEmbedderOptions) {\n return audio_task_runner_1.AudioTaskRunner.createAudioInstance(AudioEmbedder, wasmFileset, audioEmbedderOptions);\n }\n /**\n * Initializes the Wasm runtime and creates a new audio embedder based on the\n * provided model asset buffer.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param modelAssetBuffer A binary representation of the TFLite model.\n */\n static createFromModelBuffer(wasmFileset, modelAssetBuffer) {\n return audio_task_runner_1.AudioTaskRunner.createAudioInstance(AudioEmbedder, wasmFileset, { baseOptions: { modelAssetBuffer } });\n }\n /**\n * Initializes the Wasm runtime and creates a new audio embedder based on the\n * path to the model asset.\n * @param wasmFileset A configuration object that provides the location of the\n * Wasm binary and its loader.\n * @param modelAssetPath The path to the TFLite model.\n */\n static createFromModelPath(wasmFileset, modelAssetPath) {\n return audio_task_runner_1.AudioTaskRunner.createAudioInstance(AudioEmbedder, wasmFileset, { baseOptions: { modelAssetPath } });\n }\n /** @hideconstructor */\n constructor(wasmModule, glCanvas) {\n super(new task_runner_1.CachedGraphRunner(wasmModule, glCanvas));\n this.embeddingResults = [];\n this.options = new audio_embedder_graph_options_pb_1.AudioEmbedderGraphOptions();\n this.options.setBaseOptions(new base_options_pb_1.BaseOptions());\n }\n get baseOptions() {\n return this.options.getBaseOptions();\n }\n set baseOptions(proto) {\n this.options.setBaseOptions(proto);\n }\n /**\n * Sets new options for the audio embedder.\n *\n * Calling `setOptions()` with a subset of options only affects those options.\n * You can reset an option back to its default value by explicitly setting it\n * to `undefined`.\n *\n * @param options The options for the audio embedder.\n */\n setOptions(options) {\n this.options.setEmbedderOptions((0, embedder_options_1.convertEmbedderOptionsToProto)(options, this.options.getEmbedderOptions()));\n return this.applyOptions(options);\n }\n // TODO: Add a classifyStream() that takes a timestamp\n /**\n * Performs embeding extraction on the provided audio clip and waits\n * synchronously for the response.\n *\n * @param audioData An array of raw audio capture data, like from a call to\n * `getChannelData()` on an AudioBuffer.\n * @param sampleRate The sample rate in Hz of the provided audio data. If not\n * set, defaults to the sample rate set via `setDefaultSampleRate()` or\n * `48000` if no custom default was set.\n * @return The embedding resuls of the audio\n */\n embed(audioData, sampleRate) {\n return this.processAudioClip(audioData, sampleRate);\n }\n process(audioData, sampleRate, timestampMs) {\n this.graphRunner.addDoubleToStream(sampleRate, SAMPLE_RATE_STREAM, timestampMs);\n this.graphRunner.addAudioToStreamWithShape(audioData, /* numChannels= */ 1, /* numSamples= */ audioData.length, AUDIO_STREAM, timestampMs);\n this.embeddingResults = [];\n this.finishProcessing();\n return this.embeddingResults;\n }\n /** Updates the MediaPipe graph configuration. */\n refreshGraph() {\n const graphConfig = new calculator_pb_1.CalculatorGraphConfig();\n graphConfig.addInputStream(AUDIO_STREAM);\n graphConfig.addInputStream(SAMPLE_RATE_STREAM);\n graphConfig.addOutputStream(EMBEDDINGS_STREAM);\n graphConfig.addOutputStream(TIMESTAMPED_EMBEDDINGS_STREAM);\n const calculatorOptions = new calculator_options_pb_1.CalculatorOptions();\n calculatorOptions.setExtension(audio_embedder_graph_options_pb_1.AudioEmbedderGraphOptions.ext, this.options);\n const embedderNode = new calculator_pb_1.CalculatorGraphConfig.Node();\n embedderNode.setCalculator(AUDIO_EMBEDDER_CALCULATOR);\n embedderNode.addInputStream('AUDIO:' + AUDIO_STREAM);\n embedderNode.addInputStream('SAMPLE_RATE:' + SAMPLE_RATE_STREAM);\n embedderNode.addOutputStream('EMBEDDINGS:' + EMBEDDINGS_STREAM);\n embedderNode.addOutputStream('TIMESTAMPED_EMBEDDINGS:' + TIMESTAMPED_EMBEDDINGS_STREAM);\n embedderNode.setOptions(calculatorOptions);\n graphConfig.addNode(embedderNode);\n this.graphRunner.attachProtoListener(EMBEDDINGS_STREAM, (binaryProto, timestamp) => {\n const embeddingResult = embeddings_pb_1.EmbeddingResult.deserializeBinary(binaryProto);\n this.embeddingResults.push((0, embedder_result_1.convertFromEmbeddingResultProto)(embeddingResult));\n this.setLatestOutputTimestamp(timestamp);\n });\n this.graphRunner.attachEmptyPacketListener(EMBEDDINGS_STREAM, timestamp => {\n this.setLatestOutputTimestamp(timestamp);\n });\n this.graphRunner.attachProtoVectorListener(TIMESTAMPED_EMBEDDINGS_STREAM, (data, timestamp) => {\n for (const binaryProto of data) {\n const embeddingResult = embeddings_pb_1.EmbeddingResult.deserializeBinary(binaryProto);\n this.embeddingResults.push((0, embedder_result_1.convertFromEmbeddingResultProto)(embeddingResult));\n }\n this.setLatestOutputTimestamp(timestamp);\n });\n this.graphRunner.attachEmptyPacketListener(TIMESTAMPED_EMBEDDINGS_STREAM, timestamp => {\n this.setLatestOutputTimestamp(timestamp);\n });\n const binaryGraph = graphConfig.serializeBinary();\n this.setGraph(new Uint8Array(binaryGraph), /* isBinary= */ true);\n }\n}\nexports.AudioEmbedder = AudioEmbedder;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaW9fZW1iZWRkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvdGFza3Mvd2ViL2F1ZGlvL2F1ZGlvX2VtYmVkZGVyL2F1ZGlvX2VtYmVkZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFSCx1RUFBMEU7QUFDMUUsdUZBQThFO0FBQzlFLHFJQUE0SjtBQUM1SixrR0FBK0Y7QUFDL0YscUZBQWdHO0FBQ2hHLDBGQUFtRjtBQUNuRixtR0FBMkc7QUFDM0csaUdBQTRHO0FBQzVHLHdFQUF5RTtBQVF6RSwyREFBeUM7QUFDekMsMERBQXdDO0FBRXhDLHVEQUF1RDtBQUN2RCwwQ0FBMEM7QUFFMUMsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDO0FBQ2hDLE1BQU0sa0JBQWtCLEdBQUcsYUFBYSxDQUFDO0FBQ3pDLE1BQU0saUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7QUFDM0MsTUFBTSw2QkFBNkIsR0FBRyw0QkFBNEIsQ0FBQztBQUNuRSxNQUFNLHlCQUF5QixHQUMzQix5REFBeUQsQ0FBQztBQUU5RCw4Q0FBOEM7QUFDOUMsTUFBYSxhQUFjLFNBQVEsbUNBQXNDO0lBSXZFOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGlCQUFpQixDQUNwQixXQUF3QixFQUN4QixvQkFBMEM7UUFDNUMsT0FBTyxtQ0FBZSxDQUFDLG1CQUFtQixDQUN0QyxhQUFhLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNILE1BQU0sQ0FBQyxxQkFBcUIsQ0FDeEIsV0FBd0IsRUFDeEIsZ0JBQTRCO1FBQzlCLE9BQU8sbUNBQWUsQ0FBQyxtQkFBbUIsQ0FDdEMsYUFBYSxFQUFFLFdBQVcsRUFBRSxFQUFDLFdBQVcsRUFBRSxFQUFDLGdCQUFnQixFQUFDLEVBQUMsQ0FB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QUFlLENBQUMsQ0FBQyxDQUFDO2FBQ3ZEO1lBQ0QsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUIsQ0FDdEMsNkJBQTZCLEVBQUUsU0FBUyxDQUFDLEVBQUU7WUFDekMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDO1FBRVAsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsV0FBVyxDQUFDLEVBQUUsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDRjtBQW5LRCxzQ0FtS0MiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDIyIFRoZSBNZWRpYVBpcGUgQXV0aG9ycy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtDYWxjdWxhdG9yR3JhcGhDb25maWd9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9jYWxjdWxhdG9yX3BiJztcbmltcG9ydCB7Q2FsY3VsYXRvck9wdGlvbnN9IGZyb20gJy4uLy4uLy4uLy4uL2ZyYW1ld29yay9jYWxjdWxhdG9yX29wdGlvbnNfcGInO1xuaW1wb3J0IHtBdWRpb0VtYmVkZGVyR3JhcGhPcHRpb25zIGFzIEF1ZGlvRW1iZWRkZXJHcmFwaE9wdGlvbnNQcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3MvY2MvYXVkaW8vYXVkaW9fZW1iZWRkZXIvcHJvdG8vYXVkaW9fZW1iZWRkZXJfZ3JhcGhfb3B0aW9uc19wYic7XG5pbXBvcnQge0VtYmVkZGluZ1Jlc3VsdH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3MvY2MvY29tcG9uZW50cy9jb250YWluZXJzL3Byb3RvL2VtYmVkZGluZ3NfcGInO1xuaW1wb3J0IHtCYXNlT3B0aW9ucyBhcyBCYXNlT3B0aW9uc1Byb3RvfSBmcm9tICcuLi8uLi8uLi8uLi90YXNrcy9jYy9jb3JlL3Byb3RvL2Jhc2Vfb3B0aW9uc19wYic7XG5pbXBvcnQge0F1ZGlvVGFza1J1bm5lcn0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2F1ZGlvL2NvcmUvYXVkaW9fdGFza19ydW5uZXInO1xuaW1wb3J0IHtjb252ZXJ0RW1iZWRkZXJPcHRpb25zVG9Qcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvbXBvbmVudHMvcHJvY2Vzc29ycy9lbWJlZGRlcl9vcHRpb25zJztcbmltcG9ydCB7Y29udmVydEZyb21FbWJlZGRpbmdSZXN1bHRQcm90b30gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvbXBvbmVudHMvcHJvY2Vzc29ycy9lbWJlZGRlcl9yZXN1bHQnO1xuaW1wb3J0IHtDYWNoZWRHcmFwaFJ1bm5lcn0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvdGFza19ydW5uZXInO1xuaW1wb3J0IHtXYXNtRmlsZXNldH0gZnJvbSAnLi4vLi4vLi4vLi4vdGFza3Mvd2ViL2NvcmUvd2FzbV9maWxlc2V0JztcbmltcG9ydCB7V2FzbU1vZHVsZX0gZnJvbSAnLi4vLi4vLi4vLi4vd2ViL2dyYXBoX3J1bm5lci9ncmFwaF9ydW5uZXInO1xuLy8gUGxhY2Vob2xkZXIgZm9yIGludGVybmFsIGRlcGVuZGVuY3kgb24gdHJ1c3RlZCByZXNvdXJjZSB1cmxcblxuaW1wb3J0IHtBdWRpb0VtYmVkZGVyT3B0aW9uc30gZnJvbSAnLi9hdWRpb19lbWJlZGRlcl9vcHRpb25zJztcbmltcG9ydCB7QXVkaW9FbWJlZGRlclJlc3VsdH0gZnJvbSAnLi9hdWRpb19lbWJlZGRlcl9yZXN1bHQnO1xuXG5leHBvcnQgKiBmcm9tICcuL2F1ZGlvX2VtYmVkZGVyX29wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9hdWRpb19lbWJlZGRlcl9yZXN1bHQnO1xuXG4vLyBUaGUgT1NTIEpTIEFQSSBkb2VzIG5vdCBzdXBwb3J0IHRoZSBidWlsZGVyIHBhdHRlcm4uXG4vLyB0c2xpbnQ6ZGlzYWJsZTpqc3BiLXVzZS1idWlsZGVyLXBhdHRlcm5cblxuY29uc3QgQVVESU9fU1RSRUFNID0gJ2F1ZGlvX2luJztcbmNvbnN0IFNBTVBMRV9SQVRFX1NUUkVBTSA9ICdzYW1wbGVfcmF0ZSc7XG5jb25zdCBFTUJFRERJTkdTX1NUUkVBTSA9ICdlbWJlZGRpbmdzX291dCc7XG5jb25zdCBUSU1FU1RBTVBFRF9FTUJFRERJTkdTX1NUUkVBTSA9ICd0aW1lc3RhbXBlZF9lbWJlZGRpbmdzX291dCc7XG5jb25zdCBBVURJT19FTUJFRERFUl9DQUxDVUxBVE9SID1cbiAgICAnbWVkaWFwaXBlLnRhc2tzLmF1ZGlvLmF1ZGlvX2VtYmVkZGVyLkF1ZGlvRW1iZWRkZXJHcmFwaCc7XG5cbi8qKiBQZXJmb3JtcyBlbWJlZGRpbmcgZXh0cmFjdGlvbiBvbiBhdWRpby4gKi9cbmV4cG9ydCBjbGFzcyBBdWRpb0VtYmVkZGVyIGV4dGVuZHMgQXVkaW9UYXNrUnVubmVyPEF1ZGlvRW1iZWRkZXJSZXN1bHRbXT4ge1xuICBwcml2YXRlIGVtYmVkZGluZ1Jlc3VsdHM6IEF1ZGlvRW1iZWRkZXJSZXN1bHRbXSA9IFtdO1xuICBwcml2YXRlIHJlYWRvbmx5IG9wdGlvbnMgPSBuZXcgQXVkaW9FbWJlZGRlckdyYXBoT3B0aW9uc1Byb3RvKCk7XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBXYXNtIHJ1bnRpbWUgYW5kIGNyZWF0ZXMgYSBuZXcgYXVkaW8gZW1iZWRkZXIgZnJvbSB0aGVcbiAgICogcHJvdmlkZWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIHdhc21GaWxlc2V0IEEgY29uZmlndXJhdGlvbiBvYmplY3QgdGhhdCBwcm92aWRlcyB0aGUgbG9jYXRpb24gb2YgdGhlXG4gICAqICAgICBXYXNtIGJpbmFyeSBhbmQgaXRzIGxvYWRlci5cbiAgICogQHBhcmFtIGF1ZGlvRW1iZWRkZXJPcHRpb25zIFRoZSBvcHRpb25zIGZvciB0aGUgYXVkaW8gZW1iZWRkZXIuIE5vdGUgdGhhdFxuICAgKiAgICAgZWl0aGVyIGEgcGF0aCB0byB0aGUgVEZMaXRlIG1vZGVsIG9yIHRoZSBtb2RlbCBpdHNlbGYgbmVlZHMgdG8gYmVcbiAgICogICAgIHByb3ZpZGVkICh2aWEgYGJhc2VPcHRpb25zYCkuXG4gICAqL1xuICBzdGF0aWMgY3JlYXRlRnJvbU9wdGlvbnMoXG4gICAgICB3YXNtRmlsZXNldDogV2FzbUZpbGVzZXQsXG4gICAgICBhdWRpb0VtYmVkZGVyT3B0aW9uczogQXVkaW9FbWJlZGRlck9wdGlvbnMpOiBQcm9taXNlPEF1ZGlvRW1iZWRkZXI+IHtcbiAgICByZXR1cm4gQXVkaW9UYXNrUnVubmVyLmNyZWF0ZUF1ZGlvSW5zdGFuY2UoXG4gICAgICAgIEF1ZGlvRW1iZWRkZXIsIHdhc21GaWxlc2V0LCBhdWRpb0VtYmVkZGVyT3B0aW9ucyk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgdGhlIFdhc20gcnVudGltZSBhbmQgY3JlYXRlcyBhIG5ldyBhdWRpbyBlbWJlZGRlciBiYXNlZCBvbiB0aGVcbiAgICogcHJvdmlkZWQgbW9kZWwgYXNzZXQgYnVmZmVyLlxuICAgKiBAcGFyYW0gd2FzbUZpbGVzZXQgQSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGF0IHByb3ZpZGVzIHRoZSBsb2NhdGlvbiBvZiB0aGVcbiAgICogICAgIFdhc20gYmluYXJ5IGFuZCBpdHMgbG9hZGVyLlxuICAgKiBAcGFyYW0gbW9kZWxBc3NldEJ1ZmZlciBBIGJpbmFyeSByZXByZXNlbnRhdGlvbiBvZiB0aGUgVEZMaXRlIG1vZGVsLlxuICAgKi9cbiAgc3RhdGljIGNyZWF0ZUZyb21Nb2RlbEJ1ZmZlcihcbiAgICAgIHdhc21GaWxlc2V0OiBXYXNtRmlsZXNldCxcbiAgICAgIG1vZGVsQXNzZXRCdWZmZXI6IFVpbnQ4QXJyYXkpOiBQcm9taXNlPEF1ZGlvRW1iZWRkZXI+IHtcbiAgICByZXR1cm4gQXVkaW9UYXNrUnVubmVyLmNyZWF0ZUF1ZGlvSW5zdGFuY2UoXG4gICAgICAgIEF1ZGlvRW1iZWRkZXIsIHdhc21GaWxlc2V0LCB7YmFzZU9wdGlvbnM6IHttb2RlbEFzc2V0QnVmZmVyfX0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemVzIHRoZSBXYXNtIHJ1bnRpbWUgYW5kIGNyZWF0ZXMgYSBuZXcgYXVkaW8gZW1iZWRkZXIgYmFzZWQgb24gdGhlXG4gICAqIHBhdGggdG8gdGhlIG1vZGVsIGFzc2V0LlxuICAgKiBAcGFyYW0gd2FzbUZpbGVzZXQgQSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGF0IHByb3ZpZGVzIHRoZSBsb2NhdGlvbiBvZiB0aGVcbiAgICogICAgIFdhc20gYmluYXJ5IGFuZCBpdHMgbG9hZGVyLlxuICAgKiBAcGFyYW0gbW9kZWxBc3NldFBhdGggVGhlIHBhdGggdG8gdGhlIFRGTGl0ZSBtb2RlbC5cbiAgICovXG4gIHN0YXRpYyBjcmVhdGVGcm9tTW9kZWxQYXRoKFxuICAgICAgd2FzbUZpbGVzZXQ6IFdhc21GaWxlc2V0LFxuICAgICAgbW9kZWxBc3NldFBhdGg6IHN0cmluZyk6IFByb21pc2U8QXVkaW9FbWJlZGRlcj4ge1xuICAgIHJldHVybiBBdWRpb1Rhc2tSdW5uZXIuY3JlYXRlQXVkaW9JbnN0YW5jZShcbiAgICAgICAgQXVkaW9FbWJlZGRlciwgd2FzbUZpbGVzZXQsIHtiYXNlT3B0aW9uczoge21vZGVsQXNzZXRQYXRofX0pO1xuICB9XG5cbiAgLyoqIEBoaWRlY29uc3RydWN0b3IgKi9cbiAgY29uc3RydWN0b3IoXG4gICAgICB3YXNtTW9kdWxlOiBXYXNtTW9kdWxlLFxuICAgICAgZ2xDYW52YXM/OiBIVE1MQ2FudmFzRWxlbWVudHxPZmZzY3JlZW5DYW52YXN8bnVsbCkge1xuICAgIHN1cGVyKG5ldyBDYWNoZWRHcmFwaFJ1bm5lcih3YXNtTW9kdWxlLCBnbENhbnZhcykpO1xuICAgIHRoaXMub3B0aW9ucy5zZXRCYXNlT3B0aW9ucyhuZXcgQmFzZU9wdGlvbnNQcm90bygpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBnZXQgYmFzZU9wdGlvbnMoKTogQmFzZU9wdGlvbnNQcm90byB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5nZXRCYXNlT3B0aW9ucygpITtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzZXQgYmFzZU9wdGlvbnMocHJvdG86IEJhc2VPcHRpb25zUHJvdG8pIHtcbiAgICB0aGlzLm9wdGlvbnMuc2V0QmFzZU9wdGlvbnMocHJvdG8pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgbmV3IG9wdGlvbnMgZm9yIHRoZSBhdWRpbyBlbWJlZGRlci5cbiAgICpcbiAgICogQ2FsbGluZyBgc2V0T3B0aW9ucygpYCB3aXRoIGEgc3Vic2V0IG9mIG9wdGlvbnMgb25seSBhZmZlY3RzIHRob3NlIG9wdGlvbnMuXG4gICAqIFlvdSBjYW4gcmVzZXQgYW4gb3B0aW9uIGJhY2sgdG8gaXRzIGRlZmF1bHQgdmFsdWUgYnkgZXhwbGljaXRseSBzZXR0aW5nIGl0XG4gICAqIHRvIGB1bmRlZmluZWRgLlxuICAgKlxuICAgKiBAcGFyYW0gb3B0aW9ucyBUaGUgb3B0aW9ucyBmb3IgdGhlIGF1ZGlvIGVtYmVkZGVyLlxuICAgKi9cbiAgb3ZlcnJpZGUgc2V0T3B0aW9ucyhvcHRpb25zOiBBdWRpb0VtYmVkZGVyT3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMub3B0aW9ucy5zZXRFbWJlZGRlck9wdGlvbnMoY29udmVydEVtYmVkZGVyT3B0aW9uc1RvUHJvdG8oXG4gICAgICAgIG9wdGlvbnMsIHRoaXMub3B0aW9ucy5nZXRFbWJlZGRlck9wdGlvbnMoKSkpO1xuICAgIHJldHVybiB0aGlzLmFwcGx5T3B0aW9ucyhvcHRpb25zKTtcbiAgfVxuXG4gIC8vIFRPRE86IEFkZCBhIGNsYXNzaWZ5U3RyZWFtKCkgdGhhdCB0YWtlcyBhIHRpbWVzdGFtcFxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBlbWJlZGluZyBleHRyYWN0aW9uIG9uIHRoZSBwcm92aWRlZCBhdWRpbyBjbGlwIGFuZCB3YWl0c1xuICAgKiBzeW5jaHJvbm91c2x5IGZvciB0aGUgcmVzcG9uc2UuXG4gICAqXG4gICAqIEBwYXJhbSBhdWRpb0RhdGEgQW4gYXJyYXkgb2YgcmF3IGF1ZGlvIGNhcHR1cmUgZGF0YSwgbGlrZSBmcm9tIGEgY2FsbCB0b1xuICAgKiAgICAgYGdldENoYW5uZWxEYXRhKClgIG9uIGFuIEF1ZGlvQnVmZmVyLlxuICAgKiBAcGFyYW0gc2FtcGxlUmF0ZSBUaGUgc2FtcGxlIHJhdGUgaW4gSHogb2YgdGhlIHByb3ZpZGVkIGF1ZGlvIGRhdGEuIElmIG5vdFxuICAgKiAgICAgc2V0LCBkZWZhdWx0cyB0byB0aGUgc2FtcGxlIHJhdGUgc2V0IHZpYSBgc2V0RGVmYXVsdFNhbXBsZVJhdGUoKWAgb3JcbiAgICogICAgIGA0ODAwMGAgaWYgbm8gY3VzdG9tIGRlZmF1bHQgd2FzIHNldC5cbiAgICogQHJldHVybiBUaGUgZW1iZWRkaW5nIHJlc3VscyBvZiB0aGUgYXVkaW9cbiAgICovXG4gIGVtYmVkKGF1ZGlvRGF0YTogRmxvYXQzMkFycmF5LCBzYW1wbGVSYXRlPzogbnVtYmVyKTogQXVkaW9FbWJlZGRlclJlc3VsdFtdIHtcbiAgICByZXR1cm4gdGhpcy5wcm9jZXNzQXVkaW9DbGlwKGF1ZGlvRGF0YSwgc2FtcGxlUmF0ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcHJvY2VzcyhcbiAgICAgIGF1ZGlvRGF0YTogRmxvYXQzMkFycmF5LCBzYW1wbGVSYXRlOiBudW1iZXIsXG4gICAgICB0aW1lc3RhbXBNczogbnVtYmVyKTogQXVkaW9FbWJlZGRlclJlc3VsdFtdIHtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmFkZERvdWJsZVRvU3RyZWFtKFxuICAgICAgICBzYW1wbGVSYXRlLCBTQU1QTEVfUkFURV9TVFJFQU0sIHRpbWVzdGFtcE1zKTtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmFkZEF1ZGlvVG9TdHJlYW1XaXRoU2hhcGUoXG4gICAgICAgIGF1ZGlvRGF0YSwgLyogbnVtQ2hhbm5lbHM9ICovIDEsIC8qIG51bVNhbXBsZXM9ICovIGF1ZGlvRGF0YS5sZW5ndGgsXG4gICAgICAgIEFVRElPX1NUUkVBTSwgdGltZXN0YW1wTXMpO1xuXG4gICAgdGhpcy5lbWJlZGRpbmdSZXN1bHRzID0gW107XG4gICAgdGhpcy5maW5pc2hQcm9jZXNzaW5nKCk7XG4gICAgcmV0dXJuIHRoaXMuZW1iZWRkaW5nUmVzdWx0cztcbiAgfVxuXG4gIC8qKiBVcGRhdGVzIHRoZSBNZWRpYVBpcGUgZ3JhcGggY29uZmlndXJhdGlvbi4gKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlZnJlc2hHcmFwaCgpOiB2b2lkIHtcbiAgICBjb25zdCBncmFwaENvbmZpZyA9IG5ldyBDYWxjdWxhdG9yR3JhcGhDb25maWcoKTtcbiAgICBncmFwaENvbmZpZy5hZGRJbnB1dFN0cmVhbShBVURJT19TVFJFQU0pO1xuICAgIGdyYXBoQ29uZmlnLmFkZElucHV0U3RyZWFtKFNBTVBMRV9SQVRFX1NUUkVBTSk7XG4gICAgZ3JhcGhDb25maWcuYWRkT3V0cHV0U3RyZWFtKEVNQkVERElOR1NfU1RSRUFNKTtcbiAgICBncmFwaENvbmZpZy5hZGRPdXRwdXRTdHJlYW0oVElNRVNUQU1QRURfRU1CRURESU5HU19TVFJFQU0pO1xuXG4gICAgY29uc3QgY2FsY3VsYXRvck9wdGlvbnMgPSBuZXcgQ2FsY3VsYXRvck9wdGlvbnMoKTtcbiAgICBjYWxjdWxhdG9yT3B0aW9ucy5zZXRFeHRlbnNpb24oXG4gICAgICAgIEF1ZGlvRW1iZWRkZXJHcmFwaE9wdGlvbnNQcm90by5leHQsIHRoaXMub3B0aW9ucyk7XG5cbiAgICBjb25zdCBlbWJlZGRlck5vZGUgPSBuZXcgQ2FsY3VsYXRvckdyYXBoQ29uZmlnLk5vZGUoKTtcbiAgICBlbWJlZGRlck5vZGUuc2V0Q2FsY3VsYXRvcihBVURJT19FTUJFRERFUl9DQUxDVUxBVE9SKTtcbiAgICBlbWJlZGRlck5vZGUuYWRkSW5wdXRTdHJlYW0oJ0FVRElPOicgKyBBVURJT19TVFJFQU0pO1xuICAgIGVtYmVkZGVyTm9kZS5hZGRJbnB1dFN0cmVhbSgnU0FNUExFX1JBVEU6JyArIFNBTVBMRV9SQVRFX1NUUkVBTSk7XG4gICAgZW1iZWRkZXJOb2RlLmFkZE91dHB1dFN0cmVhbSgnRU1CRURESU5HUzonICsgRU1CRURESU5HU19TVFJFQU0pO1xuICAgIGVtYmVkZGVyTm9kZS5hZGRPdXRwdXRTdHJlYW0oXG4gICAgICAgICdUSU1FU1RBTVBFRF9FTUJFRERJTkdTOicgKyBUSU1FU1RBTVBFRF9FTUJFRERJTkdTX1NUUkVBTSk7XG4gICAgZW1iZWRkZXJOb2RlLnNldE9wdGlvbnMoY2FsY3VsYXRvck9wdGlvbnMpO1xuXG4gICAgZ3JhcGhDb25maWcuYWRkTm9kZShlbWJlZGRlck5vZGUpO1xuXG4gICAgdGhpcy5ncmFwaFJ1bm5lci5hdHRhY2hQcm90b0xpc3RlbmVyKFxuICAgICAgICBFTUJFRERJTkdTX1NUUkVBTSwgKGJpbmFyeVByb3RvLCB0aW1lc3RhbXApID0+IHtcbiAgICAgICAgICBjb25zdCBlbWJlZGRpbmdSZXN1bHQgPVxuICAgICAgICAgICAgICBFbWJlZGRpbmdSZXN1bHQuZGVzZXJpYWxpemVCaW5hcnkoYmluYXJ5UHJvdG8pO1xuICAgICAgICAgIHRoaXMuZW1iZWRkaW5nUmVzdWx0cy5wdXNoKFxuICAgICAgICAgICAgICBjb252ZXJ0RnJvbUVtYmVkZGluZ1Jlc3VsdFByb3RvKGVtYmVkZGluZ1Jlc3VsdCkpO1xuICAgICAgICAgIHRoaXMuc2V0TGF0ZXN0T3V0cHV0VGltZXN0YW1wKHRpbWVzdGFtcCk7XG4gICAgICAgIH0pO1xuICAgIHRoaXMuZ3JhcGhSdW5uZXIuYXR0YWNoRW1wdHlQYWNrZXRMaXN0ZW5lcihFTUJFRERJTkdTX1NUUkVBTSwgdGltZXN0YW1wID0+IHtcbiAgICAgIHRoaXMuc2V0TGF0ZXN0T3V0cHV0VGltZXN0YW1wKHRpbWVzdGFtcCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmdyYXBoUnVubmVyLmF0dGFjaFByb3RvVmVjdG9yTGlzdGVuZXIoXG4gICAgICAgIFRJTUVTVEFNUEVEX0VNQkVERElOR1NfU1RSRUFNLCAoZGF0YSwgdGltZXN0YW1wKSA9PiB7XG4gICAgICAgICAgZm9yIChjb25zdCBiaW5hcnlQcm90byBvZiBkYXRhKSB7XG4gICAgICAgICAgICBjb25zdCBlbWJlZGRpbmdSZXN1bHQgPVxuICAgICAgICAgICAgICAgIEVtYmVkZGluZ1Jlc3VsdC5kZXNlcmlhbGl6ZUJpbmFyeShiaW5hcnlQcm90byk7XG4gICAgICAgICAgICB0aGlzLmVtYmVkZGluZ1Jlc3VsdHMucHVzaChcbiAgICAgICAgICAgICAgICBjb252ZXJ0RnJvbUVtYmVkZGluZ1Jlc3VsdFByb3RvKGVtYmVkZGluZ1Jlc3VsdCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLnNldExhdGVzdE91dHB1dFRpbWVzdGFtcCh0aW1lc3RhbXApO1xuICAgICAgICB9KTtcbiAgICB0aGlzLmdyYXBoUnVubmVyLmF0dGFjaEVtcHR5UGFja2V0TGlzdGVuZXIoXG4gICAgICAgIFRJTUVTVEFNUEVEX0VNQkVERElOR1NfU1RSRUFNLCB0aW1lc3RhbXAgPT4ge1xuICAgICAgICAgIHRoaXMuc2V0TGF0ZXN0T3V0cHV0VGltZXN0YW1wKHRpbWVzdGFtcCk7XG4gICAgICAgIH0pO1xuXG4gICAgY29uc3QgYmluYXJ5R3JhcGggPSBncmFwaENvbmZpZy5zZXJpYWxpemVCaW5hcnkoKTtcbiAgICB0aGlzLnNldEdyYXBoKG5ldyBVaW50OEFycmF5KGJpbmFyeUdyYXBoKSwgLyogaXNCaW5hcnk9ICovIHRydWUpO1xuICB9XG59XG5cblxuXG4iXX0=","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilesetResolver = void 0;\nlet supportsSimd;\n/**\n * Simple WASM program to test compatibility with the M91 instruction set.\n * Compiled from\n * https://github.com/GoogleChromeLabs/wasm-feature-detect/blob/main/src/detectors/simd/module.wat\n */\nconst WASM_SIMD_CHECK = new Uint8Array([\n 0, 97, 115, 109, 1, 0, 0, 0, 1, 5, 1, 96, 0, 1, 123, 3,\n 2, 1, 0, 10, 10, 1, 8, 0, 65, 0, 253, 15, 253, 98, 11\n]);\nasync function isSimdSupported() {\n if (supportsSimd === undefined) {\n try {\n await WebAssembly.instantiate(WASM_SIMD_CHECK);\n supportsSimd = true;\n }\n catch (_a) {\n supportsSimd = false;\n }\n }\n return supportsSimd;\n}\nasync function createFileset(taskName, basePath = '') {\n const suffix = await isSimdSupported() ? 'wasm_internal' : 'wasm_nosimd_internal';\n return {\n wasmLoaderPath: `${basePath}/${taskName}_${suffix}.js`,\n wasmBinaryPath: `${basePath}/${taskName}_${suffix}.wasm`,\n };\n}\n// tslint:disable:class-as-namespace\n/**\n * Resolves the files required for the MediaPipe Task APIs.\n *\n * This class verifies whether SIMD is supported in the current environment and\n * loads the SIMD files only if support is detected. The returned filesets\n * require that the Wasm files are published without renaming. If this is not\n * possible, you can invoke the MediaPipe Tasks APIs using a manually created\n * `WasmFileset`.\n */\nclass FilesetResolver {\n /**\n * Returns whether SIMD is supported in the current environment.\n *\n * If your environment requires custom locations for the MediaPipe Wasm files,\n * you can use `isSimdSupported()` to decide whether to load the SIMD-based\n * assets.\n *\n * @return Whether SIMD support was detected in the current environment.\n */\n static isSimdSupported() {\n return isSimdSupported();\n }\n /**\n * Creates a fileset for the MediaPipe Audio tasks.\n *\n * @param basePath An optional base path to specify the directory the Wasm\n * files should be loaded from. If not specified, the Wasm files are\n * loaded from the host's root directory.\n * @return A `WasmFileset` that can be used to initialize MediaPipe Audio\n * tasks.\n */\n static forAudioTasks(basePath) {\n return createFileset('audio', basePath);\n }\n /**\n * Creates a fileset for the MediaPipe Text tasks.\n *\n * @param basePath An optional base path to specify the directory the Wasm\n * files should be loaded from. If not specified, the Wasm files are\n * loaded from the host's root directory.\n * @return A `WasmFileset` that can be used to initialize MediaPipe Text\n * tasks.\n */\n static forTextTasks(basePath) {\n return createFileset('text', basePath);\n }\n /**\n * Creates a fileset for the MediaPipe Vision tasks.\n *\n * @param basePath An optional base path to specify the directory the Wasm\n * files should be loaded from. If not specified, the Wasm files are\n * loaded from the host's root directory.\n * @return A `WasmFileset` that can be used to initialize MediaPipe Vision\n * tasks.\n */\n static forVisionTasks(basePath) {\n return createFileset('vision', basePath);\n }\n}\nexports.FilesetResolver = FilesetResolver;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZXNldF9yZXNvbHZlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL21lZGlhcGlwZS90YXNrcy93ZWIvY29yZS9maWxlc2V0X3Jlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBTUgsSUFBSSxZQUErQixDQUFDO0FBRXBDOzs7O0dBSUc7QUFDSCxNQUFNLGVBQWUsR0FBRyxJQUFJLFVBQVUsQ0FBQztJQUNyQyxDQUFDLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRyxDQUFDLEVBQUUsQ0FBQyxFQUFJLEVBQUUsRUFBRSxDQUFDLEVBQUksQ0FBQyxFQUFHLEdBQUcsRUFBRSxDQUFDO0lBQzdELENBQUMsRUFBRSxDQUFDLEVBQUcsQ0FBQyxFQUFJLEVBQUUsRUFBRyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsRUFBRTtDQUMxRCxDQUFDLENBQUM7QUFLSCxLQUFLLFVBQVUsZUFBZTtJQUM1QixJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDOUIsSUFBSTtZQUNGLE1BQU0sV0FBVyxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUMvQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO1FBQUMsV0FBTTtZQUNOLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDdEI7S0FDRjtJQUVELE9BQU8sWUFBWSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxLQUFLLFVBQVUsYUFBYSxDQUN4QixRQUErQixFQUFFLFFBQVEsR0FBRyxFQUFFO0lBQ2hELE1BQU0sTUFBTSxHQUNSLE1BQU0sZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsc0JBQXNCLENBQUM7SUFFdkUsT0FBTztRQUNMLGNBQWMsRUFBRSxHQUFHLFFBQVEsSUFBSSxRQUFRLElBQUksTUFBTSxLQUFLO1FBQ3RELGNBQWMsRUFBRSxHQUFHLFFBQVEsSUFBSSxRQUFRLElBQUksTUFBTSxPQUFPO0tBQ3pELENBQUM7QUFDSixDQUFDO0FBRUQsb0NBQW9DO0FBRXBDOzs7Ozs7OztHQVFHO0FBQ0gsTUFBYSxlQUFlO0lBQzFCOzs7Ozs7OztPQVFHO0lBQ0gsTUFBTSxDQUFDLGVBQWU7UUFDcEIsT0FBTyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsYUFBYSxDQUFDLFFBQWlCO1FBQ3BDLE9BQU8sYUFBYSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsWUFBWSxDQUFDLFFBQWlCO1FBQ25DLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsY0FBYyxDQUFDLFFBQWlCO1FBQ3JDLE9BQU8sYUFBYSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMzQyxDQUFDO0NBQ0Y7QUFwREQsMENBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBDb3B5cmlnaHQgMjAyMiBUaGUgTWVkaWFQaXBlIEF1dGhvcnMuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIFBsYWNlaG9sZGVyIGZvciBpbnRlcm5hbCBkZXBlbmRlbmN5IG9uIHJlc291cmNlVXJsU2FmZUJ5UmV2aWV3XG5cbmltcG9ydCB7V2FzbUZpbGVzZXR9IGZyb20gJy4vd2FzbV9maWxlc2V0JztcblxubGV0IHN1cHBvcnRzU2ltZDogYm9vbGVhbnx1bmRlZmluZWQ7XG5cbi8qKlxuICogU2ltcGxlIFdBU00gcHJvZ3JhbSB0byB0ZXN0IGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgTTkxIGluc3RydWN0aW9uIHNldC5cbiAqIENvbXBpbGVkIGZyb21cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9Hb29nbGVDaHJvbWVMYWJzL3dhc20tZmVhdHVyZS1kZXRlY3QvYmxvYi9tYWluL3NyYy9kZXRlY3RvcnMvc2ltZC9tb2R1bGUud2F0XG4gKi9cbmNvbnN0IFdBU01fU0lNRF9DSEVDSyA9IG5ldyBVaW50OEFycmF5KFtcbiAgMCwgOTcsIDExNSwgMTA5LCAxLCAgMCwgMCwgMCwgMSwgIDUsIDEsICAgOTYsIDAsICAgMSwgIDEyMywgMyxcbiAgMiwgMSwgIDAsICAgMTAsICAxMCwgMSwgOCwgMCwgNjUsIDAsIDI1MywgMTUsIDI1MywgOTgsIDExXG5dKTtcblxuLyoqIFRoZSBjYXRlZ29yaWVzIG9mIHRhc2tzIHN1cHBvcnRlZCBieSBNZWRpYVBpcGUuICovXG50eXBlIE1lZGlhcGlwZVRhc2tDYXRlZ29yeSA9ICdhdWRpbyd8J3RleHQnfCd2aXNpb24nO1xuXG5hc3luYyBmdW5jdGlvbiBpc1NpbWRTdXBwb3J0ZWQoKTogUHJvbWlzZTxib29sZWFuPiB7XG4gIGlmIChzdXBwb3J0c1NpbWQgPT09IHVuZGVmaW5lZCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShXQVNNX1NJTURfQ0hFQ0spO1xuICAgICAgc3VwcG9ydHNTaW1kID0gdHJ1ZTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIHN1cHBvcnRzU2ltZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzdXBwb3J0c1NpbWQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNyZWF0ZUZpbGVzZXQoXG4gICAgdGFza05hbWU6IE1lZGlhcGlwZVRhc2tDYXRlZ29yeSwgYmFzZVBhdGggPSAnJyk6IFByb21pc2U8V2FzbUZpbGVzZXQ+IHtcbiAgY29uc3Qgc3VmZml4ID1cbiAgICAgIGF3YWl0IGlzU2ltZFN1cHBvcnRlZCgpID8gJ3dhc21faW50ZXJuYWwnIDogJ3dhc21fbm9zaW1kX2ludGVybmFsJztcblxuICByZXR1cm4ge1xuICAgIHdhc21Mb2FkZXJQYXRoOiBgJHtiYXNlUGF0aH0vJHt0YXNrTmFtZX1fJHtzdWZmaXh9LmpzYCxcbiAgICB3YXNtQmluYXJ5UGF0aDogYCR7YmFzZVBhdGh9LyR7dGFza05hbWV9XyR7c3VmZml4fS53YXNtYCxcbiAgfTtcbn1cblxuLy8gdHNsaW50OmRpc2FibGU6Y2xhc3MtYXMtbmFtZXNwYWNlXG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIGZpbGVzIHJlcXVpcmVkIGZvciB0aGUgTWVkaWFQaXBlIFRhc2sgQVBJcy5cbiAqXG4gKiBUaGlzIGNsYXNzIHZlcmlmaWVzIHdoZXRoZXIgU0lNRCBpcyBzdXBwb3J0ZWQgaW4gdGhlIGN1cnJlbnQgZW52aXJvbm1lbnQgYW5kXG4gKiBsb2FkcyB0aGUgU0lNRCBmaWxlcyBvbmx5IGlmIHN1cHBvcnQgaXMgZGV0ZWN0ZWQuIFRoZSByZXR1cm5lZCBmaWxlc2V0c1xuICogcmVxdWlyZSB0aGF0IHRoZSBXYXNtIGZpbGVzIGFyZSBwdWJsaXNoZWQgd2l0aG91dCByZW5hbWluZy4gSWYgdGhpcyBpcyBub3RcbiAqIHBvc3NpYmxlLCB5b3UgY2FuIGludm9rZSB0aGUgTWVkaWFQaXBlIFRhc2tzIEFQSXMgdXNpbmcgYSBtYW51YWxseSBjcmVhdGVkXG4gKiBgV2FzbUZpbGVzZXRgLlxuICovXG5leHBvcnQgY2xhc3MgRmlsZXNldFJlc29sdmVyIHtcbiAgLyoqXG4gICAqIFJldHVybnMgd2hldGhlciBTSU1EIGlzIHN1cHBvcnRlZCBpbiB0aGUgY3VycmVudCBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogSWYgeW91ciBlbnZpcm9ubWVudCByZXF1aXJlcyBjdXN0b20gbG9jYXRpb25zIGZvciB0aGUgTWVkaWFQaXBlIFdhc20gZmlsZXMsXG4gICAqIHlvdSBjYW4gdXNlIGBpc1NpbWRTdXBwb3J0ZWQoKWAgdG8gZGVjaWRlIHdoZXRoZXIgdG8gbG9hZCB0aGUgU0lNRC1iYXNlZFxuICAgKiBhc3NldHMuXG4gICAqXG4gICAqIEByZXR1cm4gV2hldGhlciBTSU1EIHN1cHBvcnQgd2FzIGRldGVjdGVkIGluIHRoZSBjdXJyZW50IGVudmlyb25tZW50LlxuICAgKi9cbiAgc3RhdGljIGlzU2ltZFN1cHBvcnRlZCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gaXNTaW1kU3VwcG9ydGVkKCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZpbGVzZXQgZm9yIHRoZSBNZWRpYVBpcGUgQXVkaW8gdGFza3MuXG4gICAqXG4gICAqIEBwYXJhbSBiYXNlUGF0aCBBbiBvcHRpb25hbCBiYXNlIHBhdGggdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IHRoZSBXYXNtXG4gICAqICAgIGZpbGVzIHNob3VsZCBiZSBsb2FkZWQgZnJvbS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIFdhc20gZmlsZXMgYXJlXG4gICAqICAgIGxvYWRlZCBmcm9tIHRoZSBob3N0J3Mgcm9vdCBkaXJlY3RvcnkuXG4gICAqIEByZXR1cm4gQSBgV2FzbUZpbGVzZXRgIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBNZWRpYVBpcGUgQXVkaW9cbiAgICogICAgdGFza3MuXG4gICAqL1xuICBzdGF0aWMgZm9yQXVkaW9UYXNrcyhiYXNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8V2FzbUZpbGVzZXQ+IHtcbiAgICByZXR1cm4gY3JlYXRlRmlsZXNldCgnYXVkaW8nLCBiYXNlUGF0aCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyBhIGZpbGVzZXQgZm9yIHRoZSBNZWRpYVBpcGUgVGV4dCB0YXNrcy5cbiAgICpcbiAgICogQHBhcmFtIGJhc2VQYXRoIEFuIG9wdGlvbmFsIGJhc2UgcGF0aCB0byBzcGVjaWZ5IHRoZSBkaXJlY3RvcnkgdGhlIFdhc21cbiAgICogICAgZmlsZXMgc2hvdWxkIGJlIGxvYWRlZCBmcm9tLiBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgV2FzbSBmaWxlcyBhcmVcbiAgICogICAgbG9hZGVkIGZyb20gdGhlIGhvc3QncyByb290IGRpcmVjdG9yeS5cbiAgICogQHJldHVybiBBIGBXYXNtRmlsZXNldGAgdGhhdCBjYW4gYmUgdXNlZCB0byBpbml0aWFsaXplIE1lZGlhUGlwZSBUZXh0XG4gICAqICAgIHRhc2tzLlxuICAgKi9cbiAgc3RhdGljIGZvclRleHRUYXNrcyhiYXNlUGF0aD86IHN0cmluZyk6IFByb21pc2U8V2FzbUZpbGVzZXQ+IHtcbiAgICByZXR1cm4gY3JlYXRlRmlsZXNldCgndGV4dCcsIGJhc2VQYXRoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZmlsZXNldCBmb3IgdGhlIE1lZGlhUGlwZSBWaXNpb24gdGFza3MuXG4gICAqXG4gICAqIEBwYXJhbSBiYXNlUGF0aCBBbiBvcHRpb25hbCBiYXNlIHBhdGggdG8gc3BlY2lmeSB0aGUgZGlyZWN0b3J5IHRoZSBXYXNtXG4gICAqICAgIGZpbGVzIHNob3VsZCBiZSBsb2FkZWQgZnJvbS4gSWYgbm90IHNwZWNpZmllZCwgdGhlIFdhc20gZmlsZXMgYXJlXG4gICAqICAgIGxvYWRlZCBmcm9tIHRoZSBob3N0J3Mgcm9vdCBkaXJlY3RvcnkuXG4gICAqIEByZXR1cm4gQSBgV2FzbUZpbGVzZXRgIHRoYXQgY2FuIGJlIHVzZWQgdG8gaW5pdGlhbGl6ZSBNZWRpYVBpcGUgVmlzaW9uXG4gICAqICAgIHRhc2tzLlxuICAgKi9cbiAgc3RhdGljIGZvclZpc2lvblRhc2tzKGJhc2VQYXRoPzogc3RyaW5nKTogUHJvbWlzZTxXYXNtRmlsZXNldD4ge1xuICAgIHJldHVybiBjcmVhdGVGaWxlc2V0KCd2aXNpb24nLCBiYXNlUGF0aCk7XG4gIH1cbn1cblxuXG4iXX0=","\"use strict\";\n/**\n * Copyright 2022 The MediaPipe Authors.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FilesetResolver = exports.AudioEmbedder = exports.AudioClassifier = void 0;\nconst audio_classifier_1 = require(\"../../../tasks/web/audio/audio_classifier/audio_classifier\");\nconst audio_embedder_1 = require(\"../../../tasks/web/audio/audio_embedder/audio_embedder\");\nconst fileset_resolver_1 = require(\"../../../tasks/web/core/fileset_resolver\");\n// Declare the variables locally so that Rollup in OSS includes them explicitly\n// as exports.\nconst AudioClassifier = audio_classifier_1.AudioClassifier;\nexports.AudioClassifier = AudioClassifier;\nconst AudioEmbedder = audio_embedder_1.AudioEmbedder;\nexports.AudioEmbedder = AudioEmbedder;\nconst FilesetResolver = fileset_resolver_1.FilesetResolver;\nexports.FilesetResolver = FilesetResolver;\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9tZWRpYXBpcGUvdGFza3Mvd2ViL2F1ZGlvL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRzs7O0FBRUgsaUdBQWtIO0FBQ2xILDJGQUEwRztBQUMxRywrRUFBZ0c7QUFFaEcsK0VBQStFO0FBQy9FLGNBQWM7QUFDZCxNQUFNLGVBQWUsR0FBRyxrQ0FBbUIsQ0FBQztBQUlwQywwQ0FBZTtBQUh2QixNQUFNLGFBQWEsR0FBRyw4QkFBaUIsQ0FBQztBQUdmLHNDQUFhO0FBRnRDLE1BQU0sZUFBZSxHQUFHLGtDQUFtQixDQUFDO0FBRUosMENBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAyMDIyIFRoZSBNZWRpYVBpcGUgQXV0aG9ycy5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHtBdWRpb0NsYXNzaWZpZXIgYXMgQXVkaW9DbGFzc2lmaWVySW1wbH0gZnJvbSAnLi4vLi4vLi4vdGFza3Mvd2ViL2F1ZGlvL2F1ZGlvX2NsYXNzaWZpZXIvYXVkaW9fY2xhc3NpZmllcic7XG5pbXBvcnQge0F1ZGlvRW1iZWRkZXIgYXMgQXVkaW9FbWJlZGRlckltcGx9IGZyb20gJy4uLy4uLy4uL3Rhc2tzL3dlYi9hdWRpby9hdWRpb19lbWJlZGRlci9hdWRpb19lbWJlZGRlcic7XG5pbXBvcnQge0ZpbGVzZXRSZXNvbHZlciBhcyBGaWxlc2V0UmVzb2x2ZXJJbXBsfSBmcm9tICcuLi8uLi8uLi90YXNrcy93ZWIvY29yZS9maWxlc2V0X3Jlc29sdmVyJztcblxuLy8gRGVjbGFyZSB0aGUgdmFyaWFibGVzIGxvY2FsbHkgc28gdGhhdCBSb2xsdXAgaW4gT1NTIGluY2x1ZGVzIHRoZW0gZXhwbGljaXRseVxuLy8gYXMgZXhwb3J0cy5cbmNvbnN0IEF1ZGlvQ2xhc3NpZmllciA9IEF1ZGlvQ2xhc3NpZmllckltcGw7XG5jb25zdCBBdWRpb0VtYmVkZGVyID0gQXVkaW9FbWJlZGRlckltcGw7XG5jb25zdCBGaWxlc2V0UmVzb2x2ZXIgPSBGaWxlc2V0UmVzb2x2ZXJJbXBsO1xuXG5leHBvcnQge0F1ZGlvQ2xhc3NpZmllciwgQXVkaW9FbWJlZGRlciwgRmlsZXNldFJlc29sdmVyfTtcbiJdfQ=="],"names":["$jscomp","scope","findInternal","a","b","c","String","d","length","e","f","call","i","v","ASSUME_ES5","ASSUME_NO_NATIVE_MAP","ASSUME_NO_NATIVE_SET","SIMPLE_FROUND_POLYFILL","defineProperty","Object","defineProperties","Array","prototype","value","getGlobal","window","global","this","polyfill","split","configurable","writable","checkStringArgs","TypeError","RegExp","Math","max","min","g","RangeError","COMPILED","goog","self","exportPath_","execScript","shift","define","FEATURESET_YEAR","DEBUG","LOCALE","TRUSTED_SITE","STRICT_MODE_COMPATIBLE","DISALLOW_TEST_ONLY_CODE","ENABLE_CHROME_APP_SAFE_SCRIPT_LOADING","provide","isInModuleLoader_","Error","constructNamespace_","getScriptNonce","getScriptNonce_","document","cspNonce_","NONCE_PATTERN_","querySelector","nonce","getAttribute","test","VALID_MODULE_RE_","module","search","isInGoogModuleLoader_","moduleLoaderState_","moduleName","get","getInternal_","ModuleType","ES6","GOOG","isInEs6ModuleLoader_","type","getCurrentModulePath","declareLegacyNamespace","declareModuleId","require","loadedModules_","exports","moduleId","setTestOnly","forwardDeclare","getObjectByName","globalize","addDependency","ENABLE_DEBUG_LOADER","logToConsole_","console","error","requireType","basePath","nullFunction","abstractMethod","addSingletonGetter","instance_","getInstance","instantiatedSingletons_","LOAD_MODULE_USING_EVAL","SEAL_MODULE_EXPORTS","DEPENDENCIES_ENABLED","TRANSPILE","ASSUME_ES_MODULES_TRANSPILED","TRANSPILE_TO_LANGUAGE","TRANSPILER","hasBadLetScoping","useSafari10Workaround","eval","workaroundSafari10EvalBug","loadModule","isFunction","loadModuleFromSource_","seal","normalizePath_","splice","join","loadFileSync_","CLOSURE_LOAD_FILE_SYNC","XMLHttpRequest","open","send","status","responseText","transpile_","transpile","$gwtExport","JSON","stringify","typeOf","toString","propertyIsEnumerable","isArray","isArrayLike","isDateLike","isObject","getFullYear","getUid","hasOwnProperty","UID_PROPERTY_","uidCounter_","hasUid","removeUid","removeAttribute","random","getHashCode","removeHashCode","cloneObject","clone","bindNative_","apply","bind","arguments","bindJs_","slice","unshift","Function","indexOf","partial","push","mixin","now","Date","globalEval","evalWorksForGlobals_","_evalTest_","createElement","defer","appendChild","createTextNode","head","removeChild","getCssName","charAt","cssNameMapping_","cssNameMappingStyle_","CLOSURE_CSS_NAME_MAP_FN","setCssNameMapping","getMsg","html","replace","getMsgWithFallback","exportSymbol","exportProperty","inherits","superClass_","constructor","base","defineClass","statics","createSealingConstructor_","applyProperties_","SEAL_CLASS_INSTANCES","isUnsealable_","UNSEALABLE_CONSTRUCTOR_PROPERTY_","OBJECT_PROTOTYPE_FIELDS_","tagUnsealableClass","TRUSTED_TYPES_POLICY_NAME","identity_","createTrustedTypesPolicy","trustedTypes","TrustedTypes","createPolicy","createHTML","createScript","createScriptURL","createURL","message","TRUSTED_TYPES_POLICY_","object","is","forEach","filter","map","some","every","getCount","getAnyKey","getAnyValue","contains","containsValue","getValues","getKeys","getValueByKeys","containsKey","findKey","findValue","isEmpty","clear","remove","add","set","setIfUndefined","setWithReturnValueIfNotSet","equals","unsafeClone","transpose","PROTOTYPE_FIELDS_","extend","create","createSet","createImmutableView","isFrozen","freeze","isImmutableView","getAllPropertyNames","getOwnPropertyNames","getPrototypeOf","getSuperClass","jspb","asserts","doAssertFailure","assert","assertString","assertArray","fail","assertInstanceof","getType","displayName","name","BinaryConstants","ConstBinaryMessage","BinaryMessage","FieldType","INVALID","DOUBLE","FLOAT","INT64","UINT64","INT32","FIXED64","FIXED32","BOOL","STRING","GROUP","MESSAGE","BYTES","UINT32","ENUM","SFIXED32","SFIXED64","SINT32","SINT64","FHASH64","VHASH64","WireType","VARINT","DELIMITED","START_GROUP","END_GROUP","FieldTypeToWireType","INVALID_FIELD_NUMBER","FLOAT32_EPS","FLOAT32_MIN","FLOAT32_MAX","FLOAT64_EPS","FLOAT64_MIN","FLOAT64_MAX","TWO_TO_20","TWO_TO_23","TWO_TO_31","TWO_TO_32","TWO_TO_52","TWO_TO_63","TWO_TO_64","ZERO_HASH","debug","captureStackTrace","stack","reportErrorToServer","dom","NodeType","ELEMENT","ATTRIBUTE","TEXT","CDATA_SECTION","ENTITY_REFERENCE","ENTITY","PROCESSING_INSTRUCTION","COMMENT","DOCUMENT","DOCUMENT_TYPE","DOCUMENT_FRAGMENT","NOTATION","ENABLE_ASSERTS","AssertionError","subs_","messagePattern","DEFAULT_ERROR_HANDLER","errorHandler_","doAssertFailure_","setErrorHandler","assertExists","assertNumber","assertFunction","assertObject","assertBoolean","assertElement","nodeType","getType_","assertFinite","isFinite","assertObjectPrototypeIsIntact","array","NATIVE_ARRAY_PROTOTYPES","ASSUME_NATIVE_FUNCTIONS","peek","last","lastIndexOf","forEachRight","h","k","reduce","reduceRight","count","find","findIndex","findRight","findIndexRight","insert","insertAt","insertArrayAt","insertBefore","removeAt","removeLast","removeIf","removeAllIf","concat","toArray","removeDuplicates","binarySearch","binarySearch_","defaultCompare","binarySelect","l","sort","stableSort","index","sortByKey","sortObjectsByKey","isSorted","defaultCompareEquality","compare3","inverseDefaultCompare","binaryInsert","binaryRemove","bucket","toObject","range","repeat","flatten","rotate","moveItem","zip","shuffle","floor","copyByIndex","concatMap","crypt","stringToByteArray","charCodeAt","byteArrayToString","fromCharCode","byteArrayToHex","hexToByteArray","parseInt","substring","stringToUtf8ByteArray","utf8ByteArrayToString","xorByteArray","assertIsLocation","getWindow_","Location","Element","debugStringForType_","assertIsElementType_","assertIsHTMLAnchorElement","assertIsHTMLButtonElement","assertIsHTMLLinkElement","assertIsHTMLImageElement","assertIsHTMLAudioElement","assertIsHTMLVideoElement","assertIsHTMLInputElement","assertIsHTMLTextAreaElement","assertIsHTMLCanvasElement","assertIsHTMLEmbedElement","assertIsHTMLFormElement","assertIsHTMLFrameElement","assertIsHTMLIFrameElement","assertIsHTMLObjectElement","assertIsHTMLScriptElement","ownerDocument","defaultView","parentWindow","functions","constant","FALSE","TRUE","NULL","identity","lock","nth","partialRight","withReturnValue","sequence","equalTo","compose","and","or","not","CACHE_RETURN_VALUE","cacheReturnValue","once","debounce","clearTimeout","setTimeout","throttle","rateLimit","HtmlElement","TagName","tagName_","A","ABBR","ACRONYM","ADDRESS","APPLET","AREA","ARTICLE","ASIDE","AUDIO","B","BASE","BASEFONT","BDI","BDO","BIG","BLOCKQUOTE","BODY","BR","BUTTON","CANVAS","CAPTION","CENTER","CITE","CODE","COL","COLGROUP","COMMAND","DATA","DATALIST","DD","DEL","DETAILS","DFN","DIALOG","DIR","DIV","DL","DT","EM","EMBED","FIELDSET","FIGCAPTION","FIGURE","FONT","FOOTER","FORM","FRAME","FRAMESET","H1","H2","H3","H4","H5","H6","HEAD","HEADER","HGROUP","HR","HTML","I","IFRAME","IMG","INPUT","INS","ISINDEX","KBD","KEYGEN","LABEL","LEGEND","LI","LINK","MAIN","MAP","MARK","MATH","MENU","MENUITEM","META","METER","NAV","NOFRAMES","NOSCRIPT","OBJECT","OL","OPTGROUP","OPTION","OUTPUT","P","PARAM","PICTURE","PRE","PROGRESS","Q","RP","RT","RTC","RUBY","S","SAMP","SCRIPT","SECTION","SELECT","SMALL","SOURCE","SPAN","STRIKE","STRONG","STYLE","SUB","SUMMARY","SUP","SVG","TABLE","TBODY","TD","TEMPLATE","TEXTAREA","TFOOT","TH","THEAD","TIME","TITLE","TR","TRACK","TT","U","UL","VAR","VIDEO","WBR","tags","VOID_TAGS_","area","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr","isVoidTag","trustedtypes","PRIVATE_DO_NOT_ACCESS_OR_ELSE_POLICY","string","TypedString","Const","stringConstValueWithSecurityContract__googStringSecurityPrivate_","GOOG_STRING_CONSTRUCTOR_TOKEN_PRIVATE_","STRING_CONST_TYPE_MARKER__GOOG_STRING_SECURITY_PRIVATE_","TYPE_MARKER_","implementsGoogStringTypedString","getTypedStringValue","unwrap","from","EMPTY","SafeScript","privateDoNotAccessOrElseSafeScriptWrappedValue_","SAFE_SCRIPT_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","fromConstant","createSafeScriptSecurityPrivateDoNotAccessOrElse","fromConstantAndArgs","stringify_","fromJson","unwrapTrustedScript","initSecurityPrivateDoNotAccessOrElse_","fs","url","createObjectUrl","getUrlObject_","createObjectURL","revokeObjectUrl","revokeObjectURL","UrlObject_","findUrlObject_","URL","webkitURL","browserSupportsObjectUrls","blob","getBlob","BlobBuilder","WebKitBlobBuilder","append","getBlobWithProperties","Blob","endings","i18n","bidi","FORCE_RTL","IS_RTL","toLowerCase","Format","LRE","RLE","PDF","LRM","RLM","Dir","LTR","RTL","NEUTRAL","RIGHT","LEFT","I18N_RIGHT","I18N_LEFT","toDir","ltrChars_","rtlChars_","htmlSkipReg_","stripHtmlIfNeeded_","rtlCharReg_","ltrCharReg_","hasAnyRtl","hasRtlChar","hasAnyLtr","ltrRe_","rtlRe_","isRtlChar","isLtrChar","isNeutralChar","ltrDirCheckRe_","rtlDirCheckRe_","startsWithRtl","isRtlText","startsWithLtr","isLtrText","isRequiredLtrRe_","isNeutralText","ltrExitDirCheckRe_","rtlExitDirCheckRe_","endsWithLtr","isLtrExitText","endsWithRtl","isRtlExitText","rtlLocalesRe_","isRtlLanguage","bracketGuardTextRe_","guardBracketInText","enforceRtlInHtml","enforceRtlInText","enforceLtrInHtml","enforceLtrInText","dimensionsRe_","leftRe_","rightRe_","tempRe_","mirrorCSS","doubleQuoteSubstituteRe_","singleQuoteSubstituteRe_","normalizeHebrewQuote","wordSeparatorRe_","hasNumeralsRe_","rtlDetectionThreshold_","estimateDirection","detectRtlDirectionality","setElementDirAndAlign","style","textAlign","dir","setElementDirByTextDirectionality","DirectionalString","TrustedResourceUrl","privateDoNotAccessOrElseTrustedResourceUrlWrappedValue_","CONSTRUCTOR_TOKEN_PRIVATE_","TRUSTED_RESOURCE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","implementsGoogI18nBidiDirectionalString","getDirection","cloneWithParams","URL_PARAM_PARSER_","exec","createTrustedResourceUrlSecurityPrivateDoNotAccessOrElse","stringifyParams_","unwrapTrustedScriptURL","format","BASE_URL_","FORMAT_MARKER_","encodeURIComponent","formatWithParams","fromConstants","fromSafeScript","internal","startsWith","endsWith","caseInsensitiveStartsWith","caseInsensitiveCompare","substr","caseInsensitiveEndsWith","caseInsensitiveEquals","isEmptyOrWhitespace","trim","newLineToBr","htmlEscape","AMP_RE_","LT_RE_","GT_RE_","QUOT_RE_","SINGLE_QUOTE_RE_","NULL_RE_","ALL_RE_","whitespaceEscape","caseInsensitiveContains","compareVersions","compareElements_","SafeUrl","privateDoNotAccessOrElseSafeUrlWrappedValue_","SAFE_URL_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","INNOCUOUS_STRING","createSafeUrlSecurityPrivateDoNotAccessOrElse","SAFE_MIME_TYPE_PATTERN_","isSafeMimeType","fromBlob","fromMediaSource","MediaSource","DATA_URL_PATTERN_","fromDataUrl","match","fromTelUrl","SIP_URL_PATTERN_","fromSipUrl","decodeURIComponent","fromFacebookMessengerUrl","fromWhatsAppUrl","fromSmsUrl","isSmsUrlBodyValid_","fromSshUrl","sanitizeChromeExtensionUrl","sanitizeExtensionUrl_","sanitizeFirefoxExtensionUrl","sanitizeEdgeExtensionUrl","fromTrustedResourceUrl","SAFE_URL_PATTERN_","SAFE_URL_PATTERN","sanitize","sanitizeAssertUnchanged","ABOUT_BLANK","SafeStyle","privateDoNotAccessOrElseSafeStyleWrappedValue_","SAFE_STYLE_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createSafeStyleSecurityPrivateDoNotAccessOrElse","sanitizePropertyValue_","sanitizePropertyValueString_","FUNCTIONS_RE_","URL_RE_","VALUE_RE_","COMMENT_RE_","hasBalancedQuotes_","hasBalancedSquareBrackets_","sanitizeUrl_","VALUE_ALLOWED_CHARS_","ALLOWED_FUNCTIONS_","SafeStyleSheet","privateDoNotAccessOrElseSafeStyleSheetWrappedValue_","SAFE_STYLE_SHEET_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","createRule","hasBalancedBrackets_","createSafeStyleSheetSecurityPrivateDoNotAccessOrElse","pop","labs","userAgent","util","getNativeUserAgentString_","getNavigator_","navigator","userAgent_","setUserAgent","getUserAgent","matchUserAgent","matchUserAgentIgnoreCase","extractVersionTuples","browser","matchOpera_","matchIE_","matchEdgeHtml_","matchEdgeChromium_","matchOperaChromium_","matchFirefox_","matchSafari_","matchChrome_","matchCoast_","isSilk","matchIosWebview_","matchAndroidBrowser_","isChrome","isFirefox","isOpera","isIE","isEdge","isEdgeChromium","isOperaChromium","isSafari","isCoast","isIosWebview","isAndroidBrowser","getVersion","getIEVersion_","isVersionOrHigher","SafeHtml","privateDoNotAccessOrElseSafeHtmlWrappedValue_","SAFE_HTML_TYPE_MARKER_GOOG_HTML_SECURITY_PRIVATE_","dir_","ENABLE_ERROR_MESSAGES","SUPPORT_STYLE_ATTRIBUTE","unwrapTrustedHTML","createSafeHtmlSecurityPrivateDoNotAccessOrElse","htmlEscapePreservingNewlines","htmlEscapePreservingNewlinesAndSpaces","comment","VALID_NAMES_IN_TAG_","URL_ATTRIBUTES_","action","cite","data","formaction","href","manifest","poster","src","NOT_ALLOWED_TAG_NAMES_","verifyTagName","createSafeHtmlTagSecurityPrivateDoNotAccessOrElse","toUpperCase","createIframe","srcdoc","combineAttributes","sandbox","createSandboxIframe","canUseSandboxIframe","HTMLIFrameElement","createScriptSrc","createStyle","createMetaRefresh","content","getAttrNameAndValue_","getStyleValue_","createWithDir","concatWithDir","stringifyAttributes","DOCTYPE_HTML","uncheckedconversions","safeHtmlFromStringKnownToSatisfyTypeContract","safeScriptFromStringKnownToSatisfyTypeContract","safeStyleFromStringKnownToSatisfyTypeContract","safeStyleSheetFromStringKnownToSatisfyTypeContract","safeUrlFromStringKnownToSatisfyTypeContract","trustedResourceUrlFromStringKnownToSatisfyTypeContract","safe","InsertAdjacentHtmlPosition","AFTERBEGIN","AFTEREND","BEFOREBEGIN","BEFOREEND","insertAdjacentHtml","insertAdjacentHTML","SET_INNER_HTML_DISALLOWED_TAGS_","isInnerHtmlCleanupRecursive_","firstChild","innerHTML","parentElement","unsafeSetInnerHtmlDoNotUseOrElse","lastChild","setInnerHtml","tagName","setOuterHtml","outerHTML","setFormElementAction","setButtonFormAction","formAction","setInputFormAction","setStyle","cssText","documentWrite","write","setAnchorHref","setImageSrc","setAudioSrc","setVideoSrc","setEmbedSrc","setFrameSrc","setIframeSrc","setIframeSrcdoc","setLinkHrefAndRel","rel","setObjectData","setScriptSrc","setAttribute","setScriptContent","text","setLocationHref","assignLocation","assign","replaceLocation","openInWindow","parseFromStringHtml","parseFromString","createImageFromBlob","Image","onload","DETECT_DOUBLE_ESCAPING","FORCE_NON_DOM_HTML_UNESCAPING","Unicode","NBSP","subs","collapseWhitespace","isEmptyString","isEmptyOrWhitespaceSafe","makeSafe","isEmptySafe","isBreakingWhitespace","isAlpha","isNumeric","isAlphaNumeric","isSpace","isUnicodeChar","stripNewlines","canonicalizeNewlines","normalizeWhitespace","normalizeSpaces","collapseBreakingSpaces","trimLeft","trimRight","numberAwareCompare_","isNaN","intAwareCompare","floatAwareCompare","numerateCompare","urlEncode","urlDecode","E_RE_","unescapeEntities","unescapeEntitiesUsingDom_","unescapePureXmlEntities_","unescapeEntitiesWithDocument","HTML_ENTITY_PATTERN_","Number","nodeValue","preserveSpaces","stripQuotes","truncate","truncateMiddle","specialEscapeChars_","jsEscapeCache_","quote","escapeChar","escapeString","countOf","removeAll","regExpEscape","replaceAll","padNumber","toFixed","buildString","getRandomString","abs","hashCode","uniqueStringCounter_","createUniqueString","toNumber","NaN","isLowerCamelCase","isUpperCamelCase","toCamelCase","toSelectorCase","toTitleCase","capitalize","splitLimit","lastComponent","editDistance","engine","isPresto","isTrident","isWebKit","isGecko","getEngineTuple_","getVersionForKey_","platform","isAndroid","isIpod","isIphone","isIpad","isIos","isMacintosh","isLinux","isWindows","isChromeOS","isChromecast","isKaiOS","reflect","objectProperty","sinkValue","canAccessProperty","cache","ASSUME_IE","ASSUME_EDGE","ASSUME_GECKO","ASSUME_WEBKIT","ASSUME_MOBILE_WEBKIT","ASSUME_OPERA","ASSUME_ANY_VERSION","BROWSER_KNOWN_","getUserAgentString","getNavigatorTyped","getNavigator","OPERA","IE","EDGE","EDGE_OR_IE","GECKO","WEBKIT","isMobile_","MOBILE","SAFARI","determinePlatform_","PLATFORM","ASSUME_MAC","ASSUME_WINDOWS","ASSUME_LINUX","ASSUME_X11","ASSUME_ANDROID","ASSUME_IPHONE","ASSUME_IPAD","ASSUME_IPOD","ASSUME_KAIOS","PLATFORM_KNOWN_","MAC","WINDOWS","isLegacyLinux_","LINUX","isX11_","appVersion","X11","ANDROID","IPHONE","IPAD","IPOD","IOS","KAIOS","determineVersion_","getVersionRegexResult_","getDocumentMode_","parseFloat","documentMode","VERSION","compare","isVersionOrHigherCache_","isVersion","isDocumentModeOrHigher","DOCUMENT_MODE","isDocumentMode","product","ASSUME_FIREFOX","ASSUME_CHROME","ASSUME_SAFARI","PRODUCT_KNOWN_","FIREFOX","isIphoneOrIpod_","CHROME","isSafariDesktop_","base64","DEFAULT_ALPHABET_COMMON_","ENCODED_VALS","ENCODED_VALS_WEBSAFE","Alphabet","DEFAULT","NO_PADDING","WEBSAFE","WEBSAFE_DOT_PADDING","WEBSAFE_NO_PADDING","paddingChars_","isPadding_","byteToCharMaps_","charToByteMap_","ASSUME_NATIVE_SUPPORT_","HAS_NATIVE_ENCODE_","btoa","HAS_NATIVE_DECODE_","atob","encodeByteArray","init_","encodeString","decodeString","decodeStringInternal_","decodeStringToByteArray","decodeStringToUint8Array","Uint8Array","subarray","utils","split64Low","split64High","splitUint64","splitInt64","splitZigzag64","splitFloat32","round","pow","log","LN2","splitFloat64","splitHash64","joinUint64","joinInt64","toZigzag64","joinZigzag64","fromZigzag64","joinFloat32","Infinity","joinFloat64","joinHash64","DIGITS","ZERO_CHAR_CODE_","A_CHAR_CODE_","joinUnsignedDecimalString","joinSignedDecimalString","hash64ToDecimalString","hash64ArrayToDecimalStrings","decimalStringToHash64","splitDecimalString","toHexDigit_","fromHexCharCode_","hash64ToHexString","hexStringToHash64","hash64ToNumber","numberToHash64","countVarints","countVarintFields","countFixedFields_","countFixed32Fields","countFixed64Fields","countDelimitedFields","debugBytesToTextFormat","byteSourceToUint8Array","debugScalarToTextFormat","ArrayBuffer","buffer","byteOffset","byteLength","BinaryDecoder","bytes_","cursor_","end_","start_","error_","setBlock","instanceCache_","alloc","free","getBuffer","getEnd","setEnd","reset","getCursor","setCursor","advance","atEnd","pastEnd","getError","readSplitVarint64","readSplitZigzagVarint64","readSplitFixed64","skipVarint","unskipVarint","readUnsignedVarint32","readSignedVarint32","readUnsignedVarint32String","readSignedVarint32String","readZigzagVarint32","readUnsignedVarint64","readUnsignedVarint64String","readSignedVarint64","readSignedVarint64String","readZigzagVarint64","readZigzagVarintHash64","readZigzagVarint64String","readUint8","readUint16","readUint32","readUint64","readUint64String","readInt8","readInt16","readInt32","readInt64","readInt64String","readFloat","readDouble","readBool","readEnum","readString","readStringWithLength","readBytes","readVarintHash64","readFixedHash64","BinaryReader","decoder_","fieldCursor_","nextField_","nextWireType_","readCallbacks_","getFieldCursor","getFieldNumber","getWireType","isDelimited","isEndGroup","nextField","unskipHeader","skipMatchingFields","skipField","skipVarintField","skipDelimitedField","skipFixed32Field","skipFixed64Field","skipGroup","registerReadCallback","runReadCallback","readAny","readFixed64","readFixed32","readSfixed32","readSfixed64","readSint32","readSint64","readMessage","readGroup","getFieldDecoder","readInt32String","readUint32String","readSint64String","readFixed64String","readSfixed32String","readSfixed64String","readSintHash64","readPackedField_","readPackedInt32","readPackedInt32String","readPackedInt64","readPackedInt64String","readPackedUint32","readPackedUint32String","readPackedUint64","readPackedUint64String","readPackedSint32","readPackedSint64","readPackedSint64String","readPackedFixed32","readPackedFixed64","readPackedFixed64String","readPackedSfixed32","readPackedSfixed64","readPackedSfixed64String","readPackedFloat","readPackedDouble","readPackedBool","readPackedEnum","readPackedVarintHash64","readPackedFixedHash64","BinaryEncoder","buffer_","end","writeSplitVarint64","writeSplitFixed64","writeUint32","writeUnsignedVarint32","writeSignedVarint32","writeUnsignedVarint64","writeSignedVarint64","writeZigzagVarint32","writeZigzagVarint64","writeZigzagVarint64String","writeZigzagVarintHash64","writeUint8","writeUint16","writeUint64","writeInt8","writeInt16","writeInt32","writeInt64","writeInt64String","writeFloat","writeDouble","writeBool","writeEnum","writeBytes","writeVarintHash64","writeFixedHash64","writeString","arith","UInt64","lo","hi","cmp","rightShift","leftShift","msb","lsb","zero","sub","mul32x32","mul","div","fromString","Int64","BinaryWriter","blocks_","totalLength_","encoder_","bookmarks_","appendUint8Array_","beginDelimited_","writeFieldHeader_","endDelimited_","writeSerializedMessage","maybeWriteSerializedMessage","getResultBuffer","getResultBase64String","beginSubMessage","endSubMessage","writeAny","writeFixed64","writeFixed32","writeSfixed32","writeSfixed64","writeSint32","writeSint64","writeUnsignedVarint32_","writeSignedVarint32_","writeUnsignedVarint64_","writeSignedVarint64_","writeZigzagVarint32_","writeZigzagVarint64_","writeZigzagVarint64String_","writeZigzagVarintHash64_","writeInt32String","writeUint32String","writeUint64String","writeSintHash64","writeSint64String","writeFixed64String","writeSfixed64String","writeMessage","writeMessageSet","writeGroup","writeSplitZigzagVarint64","writeRepeatedInt32","writeRepeatedInt32String","writeRepeatedInt64","writeRepeatedSplitFixed64","writeRepeatedSplitVarint64","writeRepeatedSplitZigzagVarint64","writeRepeatedInt64String","writeRepeatedUint32","writeRepeatedUint32String","writeRepeatedUint64","writeRepeatedUint64String","writeRepeatedSint32","writeRepeatedSint64","writeRepeatedSint64String","writeRepeatedSintHash64","writeRepeatedFixed32","writeRepeatedFixed64","writeRepeatedFixed64String","writeRepeatedSfixed32","writeRepeatedSfixed64","writeRepeatedSfixed64String","writeRepeatedFloat","writeRepeatedDouble","writeRepeatedBool","writeRepeatedEnum","writeRepeatedString","writeRepeatedBytes","writeRepeatedMessage","writeRepeatedGroup","writeRepeatedFixedHash64","writeRepeatedVarintHash64","writePackedInt32","writePackedInt32String","writePackedInt64","writePackedSplitFixed64","writePackedSplitVarint64","writePackedSplitZigzagVarint64","writePackedInt64String","writePackedUint32","writePackedUint32String","writePackedUint64","writePackedUint64String","writePackedSint32","writePackedSint64","writePackedSint64String","writePackedSintHash64","writePackedFixed32","writePackedFixed64","writePackedFixed64String","writePackedSfixed32","writePackedSfixed64","writePackedSfixed64String","writePackedFloat","writePackedDouble","writePackedBool","writePackedEnum","writePackedFixedHash64","writePackedVarintHash64","Map","arr_","valueCtor_","map_","arrClean","loadFromArray_","Entry_","valueWrapper","stringKeys_","key","wrapEntry_","fromObject","ArrayIteratorIterable_","idx_","next","done","Symbol","iterator","getLength","del","getEntryList","entries","keys","values","has","serializeBinary","deserializeBinary","ExtensionFieldInfo","fieldIndex","fieldName","ctor","toObjectFn","isRepeated","ExtensionFieldBinaryInfo","fieldInfo","binaryReaderFn","binaryWriterFn","binaryMessageSerializeFn","binaryMessageDeserializeFn","isPacked","isMessageType","Message","GENERATE_TO_OBJECT","GENERATE_FROM_OBJECT","GENERATE_TO_STRING","ASSUME_LOCAL_ARRAYS","SERIALIZE_EMPTY_TRAILING_FIELDS","SUPPORTS_UINT8ARRAY_","getJsPbMessageId","messageId_","getIndex_","arrayIndexOffset_","hiddenES6Property_","getFieldNumber_","initialize","wrappers_","initPivotAndExtensionObject_","convertedPrimitiveFields_","repeatedFields","pivot_","EMPTY_LIST_SENTINEL_","maybeInitEmptyExtensionObject_","extensionObject_","computeOneofCase","isArray_","isExtensionObject_","MAX_VALUE","toObjectList","toObjectExtension","serializeBinaryExtensions","readBinaryExtension","getField","getRepeatedField","getOptionalFloatingPointField","getBooleanField","getRepeatedFloatingPointField","getRepeatedBooleanField","bytesAsB64","bytesAsU8","bytesListAsB64","assertConsistentTypes_","bytesListAsU8","getFieldWithDefault","getBooleanFieldWithDefault","getFloatingPointFieldWithDefault","getFieldProto3","getMapField","setField","setProto3IntField","setFieldIgnoringDefault_","setProto3FloatField","setProto3BooleanField","setProto3StringField","setProto3BytesField","setProto3EnumField","setProto3StringIntField","addToRepeatedField","setOneofField","getWrapperField","getRepeatedWrapperField","wrapRepeatedField_","setWrapperField","setOneofWrapperField","setRepeatedWrapperField","addToRepeatedWrapperField","toMap","syncMapFields_","getExtension","setExtension","difference","compareFields","compareExtensions","cloneMessage","clone_","copyInto","registerMessageType","messageId","messageSetExtensions","messageSetExtensionsBinary","Export","require$$0","globalThis","proto","mediapipe","CalculatorOptions","opt_data","extensions","extensionsBinary","opt_includeInstance","includeInstance","msg","obj","mergeFields","undefined","$jspbMessageInstance","bytes","reader","deserializeBinaryFromReader","setMergeFields","writer","serializeBinaryToWriter","getMergeFields","clearMergeFields","hasMergeFields","google","protobuf","Any","typeUrl","getValue_asB64","setTypeUrl","setValue","getTypeUrl","getValue_asU8","getValue","getTypeName","pack","serialized","opt_typeUrlPrefix","unpack","deserialize","MediaPipeOptions","PacketFactoryOptions","PacketFactoryConfig","PacketManagerConfig","repeatedFields_","packetFactory","outputSidePacket","externalOutput","options","getOptions","setPacketFactory","setOutputSidePacket","setExternalOutput","setOptions","getPacketFactory","clearPacketFactory","hasPacketFactory","getOutputSidePacket","clearOutputSidePacket","hasOutputSidePacket","getExternalOutput","clearExternalOutput","hasExternalOutput","clearOptions","hasOptions","packetList","getPacketList","addPacket","setPacketList","opt_value","opt_index","clearPacketList","PacketGeneratorOptions","PacketGeneratorConfig","packetGenerator","inputSidePacketList","externalInputList","outputSidePacketList","externalOutputList","setPacketGenerator","addInputSidePacket","addExternalInput","addOutputSidePacket","addExternalOutput","getInputSidePacketList","getExternalInputList","getOutputSidePacketList","getExternalOutputList","getPacketGenerator","clearPacketGenerator","hasPacketGenerator","setInputSidePacketList","clearInputSidePacketList","setExternalInputList","clearExternalInputList","setOutputSidePacketList","clearOutputSidePacketList","setExternalOutputList","clearExternalOutputList","mediapipe_framework_mediapipe_options_pb","require$$1","StatusHandlerConfig","statusHandler","setStatusHandler","getStatusHandler","clearStatusHandler","hasStatusHandler","InputStreamHandlerConfig","OutputStreamHandlerConfig","inputStreamHandler","setInputStreamHandler","getInputStreamHandler","clearInputStreamHandler","hasInputStreamHandler","outputStreamHandler","setOutputStreamHandler","getOutputStreamHandler","clearOutputStreamHandler","hasOutputStreamHandler","mediapipe_framework_calculator_options_pb","google_protobuf_any_pb","require$$2","require$$3","mediapipe_framework_packet_factory_pb","require$$4","mediapipe_framework_packet_generator_pb","require$$5","mediapipe_framework_status_handler_pb","require$$6","mediapipe_framework_stream_handler_pb","require$$7","ExecutorConfig","InputCollection","InputCollectionSet","InputStreamInfo","ProfilerConfig","CalculatorGraphConfig","Node","setName","setType","getName","sidePacketNameList","externalInputNameList","inputType","fileName","addSidePacketName","addExternalInputName","setInputType","setFileName","getSidePacketNameList","getExternalInputNameList","getInputType","getFileName","InputType","UNKNOWN","RECORDIO","FOREIGN_RECORDIO","FOREIGN_CSV_TEXT","INVALID_UPPER_BOUND","setSidePacketNameList","clearSidePacketNameList","setExternalInputNameList","clearExternalInputNameList","inputCollectionList","getInputCollectionList","addInputCollection","setInputCollectionList","clearInputCollectionList","tagIndex","backEdge","setTagIndex","setBackEdge","getTagIndex","getBackEdge","histogramIntervalSizeUsec","numHistogramIntervals","enableInputOutputLatency","enableProfiler","enableStreamLatency","usePacketTimestampForAddedPacket","traceLogCapacity","traceEventTypesDisabledList","traceLogPath","traceLogCount","traceLogIntervalUsec","traceLogMarginUsec","traceLogDurationEvents","traceLogIntervalCount","traceLogDisabled","traceEnabled","traceLogInstantEvents","calculatorFilter","setHistogramIntervalSizeUsec","setNumHistogramIntervals","setEnableInputOutputLatency","setEnableProfiler","setEnableStreamLatency","setUsePacketTimestampForAddedPacket","setTraceLogCapacity","addTraceEventTypesDisabled","setTraceLogPath","setTraceLogCount","setTraceLogIntervalUsec","setTraceLogMarginUsec","setTraceLogDurationEvents","setTraceLogIntervalCount","setTraceLogDisabled","setTraceEnabled","setTraceLogInstantEvents","setCalculatorFilter","getHistogramIntervalSizeUsec","getNumHistogramIntervals","getEnableInputOutputLatency","getEnableProfiler","getEnableStreamLatency","getUsePacketTimestampForAddedPacket","getTraceLogCapacity","getTraceEventTypesDisabledList","getTraceLogPath","getTraceLogCount","getTraceLogIntervalUsec","getTraceLogMarginUsec","getTraceLogDurationEvents","getTraceLogIntervalCount","getTraceLogDisabled","getTraceEnabled","getTraceLogInstantEvents","getCalculatorFilter","setTraceEventTypesDisabledList","clearTraceEventTypesDisabledList","nodeList","getNodeList","packetFactoryList","getPacketFactoryList","packetGeneratorList","getPacketGeneratorList","numThreads","statusHandlerList","getStatusHandlerList","inputStreamList","outputStreamList","maxQueueSize","reportDeadlock","executorList","getExecutorList","profilerConfig","getProfilerConfig","pb_package","graphOptionsList","getGraphOptionsList","addNode","addPacketFactory","addPacketGenerator","setNumThreads","addStatusHandler","addInputStream","addOutputStream","setMaxQueueSize","setReportDeadlock","addExecutor","setProfilerConfig","setPackage","addGraphOptions","getNumThreads","getInputStreamList","getOutputStreamList","getMaxQueueSize","getReportDeadlock","getPackage","calculator","nodeOptionsList","getNodeOptionsList","sourceLayer","bufferSizeHint","inputStreamInfoList","getInputStreamInfoList","executor","maxInFlight","optionValueList","setCalculator","addNodeOptions","setSourceLayer","setBufferSizeHint","addInputStreamInfo","setExecutor","setMaxInFlight","addOptionValue","getCalculator","getSourceLayer","getBufferSizeHint","getExecutor","getMaxInFlight","getOptionValueList","setInputStreamList","clearInputStreamList","setOutputStreamList","clearOutputStreamList","setNodeOptionsList","clearNodeOptionsList","setInputStreamInfoList","clearInputStreamInfoList","clearProfilerConfig","hasProfilerConfig","setOptionValueList","clearOptionValueList","setNodeList","clearNodeList","setPacketFactoryList","clearPacketFactoryList","setPacketGeneratorList","clearPacketGeneratorList","setStatusHandlerList","clearStatusHandlerList","setExecutorList","clearExecutorList","setGraphOptionsList","clearGraphOptionsList","tasks","components","processors","ClassifierOptions","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlistList","categoryDenylistList","setDisplayNamesLocale","setMaxResults","setScoreThreshold","addCategoryAllowlist","addCategoryDenylist","getCategoryAllowlistList","getCategoryDenylistList","getDisplayNamesLocale","clearDisplayNamesLocale","hasDisplayNamesLocale","getMaxResults","clearMaxResults","hasMaxResults","getScoreThreshold","clearScoreThreshold","hasScoreThreshold","setCategoryAllowlistList","clearCategoryAllowlistList","setCategoryDenylistList","clearCategoryDenylistList","mediapipe_framework_calculator_pb","InferenceCalculatorOptions","Delegate","oneofGroups_","TfLite","Gpu","Nnapi","Xnnpack","modelPath","useGpu","useNnapi","cpuNumThread","delegate","getDelegate","setModelPath","setUseGpu","setUseNnapi","setCpuNumThread","setDelegate","DelegateCase","DELEGATE_NOT_SET","TFLITE","GPU","NNAPI","XNNPACK","getDelegateCase","tflite","getTflite","gpu","getGpu","nnapi","getNnapi","xnnpack","getXnnpack","setTflite","setGpu","setNnapi","setXnnpack","useAdvancedGpuApi","api","allowPrecisionLoss","cachedKernelPath","serializedModelDir","modelToken","usage","setUseAdvancedGpuApi","setApi","setAllowPrecisionLoss","setCachedKernelPath","setSerializedModelDir","setModelToken","setUsage","Api","ANY","OPENGL","OPENCL","InferenceUsage","UNSPECIFIED","FAST_SINGLE_ANSWER","SUSTAINED_SPEED","getUseAdvancedGpuApi","clearUseAdvancedGpuApi","hasUseAdvancedGpuApi","getApi","clearApi","hasApi","getAllowPrecisionLoss","clearAllowPrecisionLoss","hasAllowPrecisionLoss","getCachedKernelPath","clearCachedKernelPath","hasCachedKernelPath","getSerializedModelDir","clearSerializedModelDir","hasSerializedModelDir","getModelToken","clearModelToken","hasModelToken","getUsage","clearUsage","hasUsage","cacheDir","acceleratorName","setCacheDir","setAcceleratorName","getCacheDir","clearCacheDir","hasCacheDir","getAcceleratorName","clearAcceleratorName","hasAcceleratorName","clearNumThreads","hasNumThreads","clearTflite","hasTflite","clearGpu","hasGpu","clearNnapi","hasNnapi","clearXnnpack","hasXnnpack","ext","getModelPath","clearModelPath","hasModelPath","getUseGpu","clearUseGpu","hasUseGpu","getUseNnapi","clearUseNnapi","hasUseNnapi","getCpuNumThread","clearCpuNumThread","hasCpuNumThread","clearDelegate","hasDelegate","mediapipe_calculators_tensor_inference_calculator_pb","core","Acceleration","ExternalFile","FileDescriptorMeta","FilePointerMeta","fileContent","getFileContent_asB64","fileDescriptorMeta","getFileDescriptorMeta","filePointerMeta","getFilePointerMeta","setFileContent","setFileDescriptorMeta","setFilePointerMeta","getFileContent","getFileContent_asU8","clearFileContent","hasFileContent","clearFileName","hasFileName","clearFileDescriptorMeta","hasFileDescriptorMeta","clearFilePointerMeta","hasFilePointerMeta","fd","offset","setFd","setLength","setOffset","getFd","clearFd","hasFd","clearLength","hasLength","getOffset","clearOffset","hasOffset","pointer","setPointer","getPointer","clearPointer","hasPointer","mediapipe_tasks_cc_core_proto_acceleration_pb","mediapipe_tasks_cc_core_proto_external_file_pb","BaseOptions","modelAsset","getModelAsset","useStreamMode","acceleration","getAcceleration","setModelAsset","setUseStreamMode","setAcceleration","clearModelAsset","hasModelAsset","getUseStreamMode","clearUseStreamMode","hasUseStreamMode","clearAcceleration","hasAcceleration","mediapipe_tasks_cc_components_processors_proto_classifier_options_pb","mediapipe_tasks_cc_core_proto_base_options_pb","audio","audio_classifier","AudioClassifierGraphOptions","baseOptions","getBaseOptions","classifierOptions","getClassifierOptions","defaultInputAudioSampleRate","setBaseOptions","setClassifierOptions","setDefaultInputAudioSampleRate","clearBaseOptions","hasBaseOptions","clearClassifierOptions","hasClassifierOptions","getDefaultInputAudioSampleRate","clearDefaultInputAudioSampleRate","hasDefaultInputAudioSampleRate","Classification","ClassificationList","ClassificationListCollection","score","label","setIndex","setScore","setLabel","setDisplayName","getIndex","clearIndex","hasIndex","getScore","clearScore","hasScore","getLabel","clearLabel","hasLabel","getDisplayName","clearDisplayName","hasDisplayName","classificationList","getClassificationList","addClassification","setClassificationList","clearClassificationList","classificationListList","getClassificationListList","addClassificationList","setClassificationListList","clearClassificationListList","mediapipe_framework_formats_classification_pb","containers","Classifications","ClassificationResult","headIndex","headName","setHeadIndex","setHeadName","hasClassificationList","getHeadIndex","clearHeadIndex","hasHeadIndex","getHeadName","clearHeadName","hasHeadName","classificationsList","getClassificationsList","timestampMs","addClassifications","setTimestampMs","setClassificationsList","clearClassificationsList","getTimestampMs","clearTimestampMs","hasTimestampMs","includes","isIOS","platform_utils","createGraphRunner","createMediaPipeLib","GraphRunner","CALCULATOR_GRAPH_CONFIG_LISTENER_NAME","platform_utils_1","glCanvas","autoResizeCanvas","wasmModule","audioPtr","audioSize","hasMultiStreamSupport","_addIntToInputStream","canvas","OffscreenCanvas","warn","async","graphFile","response","fetch","graphData","arrayBuffer","isBinary","setGraph","setGraphFromString","graphConfig","TextEncoder","encode","size","dataPtr","_malloc","HEAPU8","_changeBinaryGraph","_changeTextGraph","_free","configureAudio","numChannels","numSamples","sampleRate","streamName","headerName","_configureAudio","wrapStringPtr","streamNamePtr","headerNamePtr","setAutoResizeCanvas","resize","setAutoRenderToScreen","enabled","_setAutoRenderToScreen","bindTextureToStream","imageSource","_bindTextureToStream","_bindTextureToCanvas","gl","getContext","width","height","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","videoWidth","videoHeight","naturalWidth","naturalHeight","processGl","timestamp","frameDataPtr","HEAPU32","HEAPF64","_processGl","stringData","stringPtrFunc","stringDataPtr","stringToNewUTF8","wrapStringPtrPtr","ptrFunc","uint32Array","Uint32Array","heapSpace","uint32ptr","getCalculatorGraphConfig","callback","makeDeepCopy","listener","setListener","outputStreamNamePtr","_getGraphConfig","simpleListeners","outputStreamName","callbackFcn","setVectorListener","attachErrorListener","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","audioData","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_addBoundTextureToStream","addBoolToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","keyList","valueList","_addFlatHashMapToInputStream","addProtoToStream","protoType","protoTypePtr","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolToInputSidePacket","sidePacketName","sidePacketNamePtr","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","floatArray","Float32Array","finishProcessing","_waitUntilIdle","closeGraph","_closeGraph","runScript","scriptUrl","importScripts","script","Promise","resolve","addEventListener","body","constructorFcn","wasmLoaderScript","assetLoaderScript","fileLocator","scripts","all","ModuleFactory","Module","moduleFileLocator","locateFile","mainScriptUrlOrBlob","SupportModelResourcesGraphService","Base","registerModelResourcesGraphService","_registerModelResourcesGraphService","register_model_resources_graph_service","task_runner","TaskRunner","createTaskRunner","inference_calculator_pb_1","calculator_pb_1","acceleration_pb_1","external_file_pb_1","graph_runner_1","register_model_resources_graph_service_1","FREE_MEMORY_STREAM","UNUSED_STREAM_SUFFIX","CachedGraphRunnerType","CachedGraphRunner","fileset","wasmBinaryPath","instance","wasmLoaderPath","assetLoaderPath","static","graphRunner","processingErrors","latestOutputTimestamp","applyOptions","loadTfliteModel","_a","_b","_c","_d","_e","_f","modelAssetBuffer","modelAssetPath","then","ok","FS_unlink","FS_createDataFile","setExternalFile","refreshGraph","onGraphRefreshed","config","binaryData","code","keepaliveNode","handleErrors","setLatestOutputTimestamp","getSynctheticTimestamp","errorCount","modelAssetPathOrBuffer","externalFile","addKeepaliveNode","keepStreamAlive","freeKeepaliveStreams","close","audio_task_runner","AudioTaskRunner","task_runner_1","super","defaultSampleRate","createInstance","setDefaultSampleRate","processAudioClip","process","classifier_options","convertClassifierOptionsToProto","classifier_options_pb_1","categoryAllowlist","categoryDenylist","classifier_result","convertFromClassificationResultProto","convertFromClassifications","DEFAULT_INDEX","DEFAULT_SCORE","classifications","categories","classification","categoryName","convertFromClassificationsProto","result","classififications","audio_classifier_options","audio_classifier_result","__createBinding","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","enumerable","__exportStar","p","AudioClassifier","calculator_options_pb_1","audio_classifier_graph_options_pb_1","classifications_pb_1","base_options_pb_1","audio_task_runner_1","classifier_options_1","classifier_result_1","require$$8","require$$9","require$$10","AUDIO_STREAM","SAMPLE_RATE_STREAM","TIMESTAMPED_CLASSIFICATIONS_STREAM","wasmFileset","audioClassifierOptions","createAudioInstance","classificationResults","classify","addJsAudioClassificationResults","binaryProtos","binaryProto","classificationResult","calculatorOptions","classifierNode","binaryGraph","EmbedderOptions","l2Normalize","quantize","setL2Normalize","setQuantize","getL2Normalize","clearL2Normalize","hasL2Normalize","getQuantize","clearQuantize","hasQuantize","mediapipe_tasks_cc_components_processors_proto_embedder_options_pb","audio_embedder","AudioEmbedderGraphOptions","embedderOptions","getEmbedderOptions","setEmbedderOptions","clearEmbedderOptions","hasEmbedderOptions","FloatEmbedding","QuantizedEmbedding","Embedding","EmbeddingResult","valuesList","addValues","getValuesList","setValuesList","clearValuesList","getValues_asB64","setValues","getValues_asU8","clearValues","hasValues","EmbeddingCase","EMBEDDING_NOT_SET","FLOAT_EMBEDDING","QUANTIZED_EMBEDDING","getEmbeddingCase","floatEmbedding","getFloatEmbedding","quantizedEmbedding","getQuantizedEmbedding","setFloatEmbedding","setQuantizedEmbedding","clearFloatEmbedding","hasFloatEmbedding","clearQuantizedEmbedding","hasQuantizedEmbedding","embeddingsList","getEmbeddingsList","addEmbeddings","setEmbeddingsList","clearEmbeddingsList","embedder_options","convertEmbedderOptionsToProto","embedder_options_pb_1","embedder_result","convertFromEmbeddingResultProto","convertFromEmbeddingsProto","embedding","encodedValue","embeddingResult","embeddings","audio_embedder_options","audio_embedder_result","AudioEmbedder","audio_embedder_graph_options_pb_1","embeddings_pb_1","embedder_options_1","embedder_result_1","EMBEDDINGS_STREAM","TIMESTAMPED_EMBEDDINGS_STREAM","audioEmbedderOptions","embeddingResults","embedderNode","supportsSimd","fileset_resolver","FilesetResolver","WASM_SIMD_CHECK","isSimdSupported","WebAssembly","instantiate","createFileset","taskName","suffix","FilesetResolver_1","AudioEmbedder_1","AudioClassifier_1","audio_classifier_1","audio_embedder_1","fileset_resolver_1"],"mappings":"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"}
1
+ {"version":3,"file":"audio_bundle_cjs.js","sources":["../../../../../../../mediapipe/tasks/web/audio/audio_js.js"],"sourcesContent":["'use strict';/*\n\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: Apache-2.0\n*/\nvar m=this||self;function aa(a,b,c){return a.call.apply(a.bind,arguments)}function ba(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(e,d);return a.apply(b,e)}}return function(){return a.apply(b,arguments)}}function ca(a,b,c){ca=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf(\"native code\")?aa:ba;return ca.apply(null,arguments)}\nfunction da(a,b){a=a.split(\".\");var c=m;a[0]in c||\"undefined\"==typeof c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b}function ea(a,b){function c(){}c.prototype=b.prototype;a.ea=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.ba=function(d,e,f){for(var g=Array(arguments.length-2),h=2;h<arguments.length;h++)g[h-2]=arguments[h];return b.prototype[e].apply(d,g)}}\nfunction fa(a){return a};function n(a,b){if(Error.captureStackTrace)Error.captureStackTrace(this,n);else{const c=Error().stack;c&&(this.stack=c)}a&&(this.message=String(a));void 0!==b&&(this.cause=b)}ea(n,Error);n.prototype.name=\"CustomError\";function ha(){throw Error(\"Invalid UTF8\");}function ia(a,b){b=String.fromCharCode.apply(null,b);return null==a?b:a+b}let ja=void 0,ka;const na=\"undefined\"!==typeof TextDecoder;let oa;const pa=\"undefined\"!==typeof TextEncoder;\nfunction qa(a){if(pa)a=(oa||=new TextEncoder).encode(a);else{let c=0;const d=new Uint8Array(3*a.length);for(let e=0;e<a.length;e++){var b=a.charCodeAt(e);if(128>b)d[c++]=b;else{if(2048>b)d[c++]=b>>6|192;else{if(55296<=b&&57343>=b){if(56319>=b&&e<a.length){const f=a.charCodeAt(++e);if(56320<=f&&57343>=f){b=1024*(b-55296)+f-56320+65536;d[c++]=b>>18|240;d[c++]=b>>12&63|128;d[c++]=b>>6&63|128;d[c++]=b&63|128;continue}else e--}b=65533}d[c++]=b>>12|224;d[c++]=b>>6&63|128}d[c++]=b&63|128}}a=c===d.length?\nd:d.subarray(0,c)}return a};function ra(a){m.setTimeout(()=>{throw a;},0)};var sa,ta;a:{for(var ua=[\"CLOSURE_FLAGS\"],va=m,wa=0;wa<ua.length;wa++)if(va=va[ua[wa]],null==va){ta=null;break a}ta=va}var xa=ta&&ta[610401301];sa=null!=xa?xa:!1;var ya;const za=m.navigator;ya=za?za.userAgentData||null:null;function Aa(a){return sa?ya?ya.brands.some(({brand:b})=>b&&-1!=b.indexOf(a)):!1:!1}function p(a){var b;a:{if(b=m.navigator)if(b=b.userAgent)break a;b=\"\"}return-1!=b.indexOf(a)};function q(){return sa?!!ya&&0<ya.brands.length:!1}function Ba(){return q()?!1:p(\"Trident\")||p(\"MSIE\")}function Ca(){return q()?Aa(\"Chromium\"):(p(\"Chrome\")||p(\"CriOS\"))&&!(q()?0:p(\"Edge\"))||p(\"Silk\")};const Da=Array.prototype.some?function(a,b){return Array.prototype.some.call(a,b,void 0)}:function(a,b){const c=a.length,d=\"string\"===typeof a?a.split(\"\"):a;for(let e=0;e<c;e++)if(e in d&&b.call(void 0,d[e],e,a))return!0;return!1};var Ea=Ba();!p(\"Android\")||Ca();Ca();p(\"Safari\")&&(Ca()||(q()?0:p(\"Coast\"))||(q()?0:p(\"Opera\"))||(q()?0:p(\"Edge\"))||(q()?Aa(\"Microsoft Edge\"):p(\"Edg/\"))||q()&&Aa(\"Opera\"));var Fa={},Ga=null;function Ha(a){var b=a.length,c=3*b/4;c%3?c=Math.floor(c):-1!=\"=.\".indexOf(a[b-1])&&(c=-1!=\"=.\".indexOf(a[b-2])?c-2:c-1);var d=new Uint8Array(c),e=0;Ia(a,function(f){d[e++]=f});return e!==c?d.subarray(0,e):d}\nfunction Ia(a,b){function c(k){for(;d<a.length;){var l=a.charAt(d++),t=Ga[l];if(null!=t)return t;if(!/^[\\s\\xa0]*$/.test(l))throw Error(\"Unknown base64 encoding at char: \"+l);}return k}Ja();for(var d=0;;){var e=c(-1),f=c(0),g=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|f>>4);64!=g&&(b(f<<4&240|g>>2),64!=h&&b(g<<6&192|h))}}\nfunction Ja(){if(!Ga){Ga={};for(var a=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),b=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"],c=0;5>c;c++){var d=a.concat(b[c].split(\"\"));Fa[c]=d;for(var e=0;e<d.length;e++){var f=d[e];void 0===Ga[f]&&(Ga[f]=e)}}}};var Ka=\"undefined\"!==typeof Uint8Array,La=!Ea&&\"function\"===typeof btoa;\nfunction Ma(a){if(!La){var b;void 0===b&&(b=0);Ja();b=Fa[b];var c=Array(Math.floor(a.length/3)),d=b[64]||\"\";let k=0,l=0;for(;k<a.length-2;k+=3){var e=a[k],f=a[k+1],g=a[k+2],h=b[e>>2];e=b[(e&3)<<4|f>>4];f=b[(f&15)<<2|g>>6];g=b[g&63];c[l++]=h+e+f+g}h=0;g=d;switch(a.length-k){case 2:h=a[k+1],g=b[(h&15)<<2]||d;case 1:a=a[k],c[l]=b[a>>2]+b[(a&3)<<4|h>>4]+g+d}return c.join(\"\")}b=\"\";c=0;for(d=a.length-10240;c<d;)b+=String.fromCharCode.apply(null,a.subarray(c,c+=10240));b+=String.fromCharCode.apply(null,\nc?a.subarray(c):a);return btoa(b)}const Na=/[-_.]/g,Oa={\"-\":\"+\",_:\"/\",\".\":\"=\"};function Pa(a){return Oa[a]||\"\"}function Qa(a){if(!La)return Ha(a);Na.test(a)&&(a=a.replace(Na,Pa));a=atob(a);const b=new Uint8Array(a.length);for(let c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b}function Ra(a){return Ka&&null!=a&&a instanceof Uint8Array}let Sa;function Ta(){return Sa||=new Uint8Array(0)}var Ua={};let Va;function Wa(a){if(a!==Ua)throw Error(\"illegal external caller\");}function Xa(){return Va||=new r(null,Ua)}function Ya(a){Wa(Ua);var b=a.H;b=null==b||Ra(b)?b:\"string\"===typeof b?Qa(b):null;return null==b?b:a.H=b}var r=class{constructor(a,b){Wa(b);this.H=a;if(null!=a&&0===a.length)throw Error(\"ByteString should be constructed with non-empty values\");}V(){const a=Ya(this);return a?new Uint8Array(a):Ta()}};function Za(a,b){return Error(`Invalid wire type: ${a} (at position ${b})`)}function $a(){return Error(\"Failed to read varint, encoding is invalid.\")}function ab(a,b){return Error(`Tried to read past the end of the data ${b} > ${a}`)};function bb(a){return 0==a.length?Xa():new r(a,Ua)};function cb(a){if(\"string\"===typeof a)return{buffer:Qa(a),B:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),B:!1};if(a.constructor===Uint8Array)return{buffer:a,B:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),B:!1};if(a.constructor===r)return{buffer:Ya(a)||Ta(),B:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),B:!1};throw Error(\"Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers\");\n};const db=\"function\"===typeof Uint8Array.prototype.slice;let u=0,v=0,eb;function fb(a){const b=0>a;a=Math.abs(a);let c=a>>>0;a=Math.floor((a-c)/4294967296);if(b){const [d,e]=gb(c,a);a=e;c=d}u=c>>>0;v=a>>>0}function hb(a){const b=eb||=new DataView(new ArrayBuffer(8));b.setFloat32(0,+a,!0);v=0;u=b.getUint32(0,!0)}function ib(a,b){return 4294967296*b+(a>>>0)}function jb(a,b){const c=b&2147483648;c&&(a=~a+1>>>0,b=~b>>>0,0==a&&(b=b+1>>>0));a=ib(a,b);return c?-a:a}\nfunction kb(a){if(16>a.length)fb(Number(a));else if(\"function\"===typeof BigInt)a=BigInt(a),u=Number(a&BigInt(4294967295))>>>0,v=Number(a>>BigInt(32)&BigInt(4294967295));else{const b=+(\"-\"===a[0]);v=u=0;const c=a.length;for(let d=b,e=(c-b)%6+b;e<=c;d=e,e+=6){const f=Number(a.slice(d,e));v*=1E6;u=1E6*u+f;4294967296<=u&&(v+=Math.trunc(u/4294967296),v>>>=0,u>>>=0)}if(b){const [d,e]=gb(u,v);u=d;v=e}}}function gb(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function lb(a,b,{I:c=!1}={}){a.I=c;b&&(b=cb(b),a.j=b.buffer,a.u=b.B,a.o=0,a.l=a.j.length,a.g=a.o)}function mb(a,b){a.g=b;if(b>a.l)throw ab(a.l,b);}function nb(a,b){let c,d=0,e=0,f=0;const g=a.j;let h=a.g;do c=g[h++],d|=(c&127)<<f,f+=7;while(32>f&&c&128);32<f&&(e|=(c&127)>>4);for(f=3;32>f&&c&128;f+=7)c=g[h++],e|=(c&127)<<f;mb(a,h);if(128>c)return b(d>>>0,e>>>0);throw $a();}\nfunction ob(a){let b=0,c=a.g;const d=c+10,e=a.j;for(;c<d;){const f=e[c++];b|=f;if(0===(f&128))return mb(a,c),!!(b&127)}throw $a();}function pb(a){var b=a.j;const c=a.g,d=b[c],e=b[c+1],f=b[c+2];b=b[c+3];mb(a,a.g+4);return(d<<0|e<<8|f<<16|b<<24)>>>0}function qb(a,b){if(0>b)throw Error(`Tried to read a negative byte length: ${b}`);const c=a.g,d=c+b;if(d>a.l)throw ab(b,a.l-c);a.g=d;return c}\nfunction rb(a,b){if(0==b)return Xa();var c=qb(a,b);a.I&&a.u?c=a.j.subarray(c,c+b):(a=a.j,b=c+b,c=c===b?Ta():db?a.slice(c,b):new Uint8Array(a.subarray(c,b)));return bb(c)}\nvar sb=class{constructor(a,b){this.j=null;this.u=!1;this.g=this.l=this.o=0;lb(this,a,b)}reset(){this.g=this.o}h(){const a=this.j;let b=this.g,c=a[b++],d=c&127;if(c&128&&(c=a[b++],d|=(c&127)<<7,c&128&&(c=a[b++],d|=(c&127)<<14,c&128&&(c=a[b++],d|=(c&127)<<21,c&128&&(c=a[b++],d|=c<<28,c&128&&a[b++]&128&&a[b++]&128&&a[b++]&128&&a[b++]&128&&a[b++]&128)))))throw $a();mb(this,b);return d}s(){var a=pb(this);const b=2*(a>>31)+1,c=a>>>23&255;a&=8388607;return 255==c?a?NaN:Infinity*b:0==c?b*Math.pow(2,-149)*\na:b*Math.pow(2,c-150)*(a+Math.pow(2,23))}v(){return this.h()}},tb=[];function ub(a){var b=a.g;if(b.g==b.l)return!1;a.j=a.g.g;var c=a.g.h()>>>0;b=c>>>3;c&=7;if(!(0<=c&&5>=c))throw Za(c,a.j);if(1>b)throw Error(`Invalid field number: ${b} (at position ${a.j})`);a.l=b;a.h=c;return!0}\nfunction vb(a){switch(a.h){case 0:0!=a.h?vb(a):ob(a.g);break;case 1:a=a.g;mb(a,a.g+8);break;case 2:if(2!=a.h)vb(a);else{var b=a.g.h()>>>0;a=a.g;mb(a,a.g+b)}break;case 5:a=a.g;mb(a,a.g+4);break;case 3:b=a.l;do{if(!ub(a))throw Error(\"Unmatched start-group tag: stream EOF\");if(4==a.h){if(a.l!=b)throw Error(\"Unmatched end-group tag\");break}vb(a)}while(1);break;default:throw Za(a.h,a.j);}}\nfunction wb(a,b,c){const d=a.g.l,e=a.g.h()>>>0,f=a.g.g+e;let g=f-d;0>=g&&(a.g.l=f,c(b,a,void 0,void 0,void 0),g=f-a.g.g);if(g)throw Error(\"Message parsing ended unexpectedly. Expected to read \"+`${e} bytes, instead read ${e-g} bytes, either the `+\"data ended unexpectedly or the message misreported its own length\");a.g.g=f;a.g.l=d}\nfunction xb(a){var b=a.g.h()>>>0;a=a.g;var c=qb(a,b);a=a.j;if(na){var d=a,e;(e=ka)||(e=ka=new TextDecoder(\"utf-8\",{fatal:!0}));a=c+b;d=0===c&&a===d.length?d:d.subarray(c,a);try{var f=e.decode(d)}catch(h){if(void 0===ja){try{e.decode(new Uint8Array([128]))}catch(k){}try{e.decode(new Uint8Array([97])),ja=!0}catch(k){ja=!1}}!ja&&(ka=void 0);throw h;}}else{f=c;b=f+b;c=[];let h=null;let k;for(;f<b;){var g=a[f++];128>g?c.push(g):224>g?f>=b?ha():(k=a[f++],194>g||128!==(k&192)?(f--,ha()):c.push((g&31)<<6|\nk&63)):240>g?f>=b-1?ha():(k=a[f++],128!==(k&192)||224===g&&160>k||237===g&&160<=k||128!==((d=a[f++])&192)?(f--,ha()):c.push((g&15)<<12|(k&63)<<6|d&63)):244>=g?f>=b-2?ha():(k=a[f++],128!==(k&192)||0!==(g<<28)+(k-144)>>30||128!==((d=a[f++])&192)||128!==((e=a[f++])&192)?(f--,ha()):(g=(g&7)<<18|(k&63)<<12|(d&63)<<6|e&63,g-=65536,c.push((g>>10&1023)+55296,(g&1023)+56320))):ha();8192<=c.length&&(h=ia(h,c),c.length=0)}f=ia(h,c)}return f}function yb(a){const b=a.g.h()>>>0;return rb(a.g,b)}\nfunction zb(a,b,c){var d=a.g.h()>>>0;for(d=a.g.g+d;a.g.g<d;)c.push(b.call(a.g))}var Ab=class{constructor(a,b){if(tb.length){const c=tb.pop();lb(c,a,b);a=c}else a=new sb(a,b);this.g=a;this.j=this.g.g;this.h=this.l=-1;this.A(b)}A({O:a=!1}={}){this.O=a}reset(){this.g.reset();this.j=this.g.g;this.h=this.l=-1}},Bb=[];function Cb(a){if(!a)return Db||=new Eb(0,0);if(!/^\\d+$/.test(a))return null;kb(a);return new Eb(u,v)}var Eb=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let Db;function Fb(a){if(!a)return Gb||=new Hb(0,0);if(!/^-?\\d+$/.test(a))return null;kb(a);return new Hb(u,v)}var Hb=class{constructor(a,b){this.h=a>>>0;this.g=b>>>0}};let Gb;function Ib(a,b,c){for(;0<c||127<b;)a.g.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.g.push(b)}function Jb(a,b){for(;127<b;)a.g.push(b&127|128),b>>>=7;a.g.push(b)}function Kb(a,b){if(0<=b)Jb(a,b);else{for(let c=0;9>c;c++)a.g.push(b&127|128),b>>=7;a.g.push(1)}}function Lb(a,b){a.g.push(b>>>0&255);a.g.push(b>>>8&255);a.g.push(b>>>16&255);a.g.push(b>>>24&255)}var Mb=class{constructor(){this.g=[]}length(){return this.g.length}end(){const a=this.g;this.g=[];return a}};function Nb(a,b){0!==b.length&&(a.j.push(b),a.h+=b.length)}function w(a,b,c){Jb(a.g,8*b+c)}function Ob(a,b){w(a,b,2);b=a.g.end();Nb(a,b);b.push(a.h);return b}function Pb(a,b){var c=b.pop();for(c=a.h+a.g.length()-c;127<c;)b.push(c&127|128),c>>>=7,a.h++;b.push(c);a.h++}function Qb(a,b,c){w(a,b,2);Jb(a.g,c.length);Nb(a,a.g.end());Nb(a,c)}var Rb=class{constructor(){this.j=[];this.h=0;this.g=new Mb}};class Sb{constructor(a,b,c){this.g=a;this.h=b;this.j=c}};function x(a){return Array.prototype.slice.call(a)};const y=\"function\"===typeof Symbol&&\"symbol\"===typeof Symbol()?Symbol():void 0;var Tb=y?(a,b)=>{a[y]|=b}:(a,b)=>{void 0!==a.g?a.g|=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function Ub(a){const b=z(a);1!==(b&1)&&(Object.isFrozen(a)&&(a=x(a)),A(a,b|1))}\nvar Vb=y?(a,b)=>{a[y]&=~b}:(a,b)=>{void 0!==a.g&&(a.g&=~b)},z=y?a=>a[y]|0:a=>a.g|0,B=y?a=>a[y]:a=>a.g,A=y?(a,b)=>{a[y]=b}:(a,b)=>{void 0!==a.g?a.g=b:Object.defineProperties(a,{g:{value:b,configurable:!0,writable:!0,enumerable:!1}})};function Wb(a){Tb(a,1);return a}function Xb(a,b){A(b,(a|0)&-255)}function Yb(a,b){A(b,(a|34)&-221)}function Zb(a){a=a>>11&1023;return 0===a?536870912:a};var $b={};function ac(a){return null!==a&&\"object\"===typeof a&&!Array.isArray(a)&&a.constructor===Object}function bc(a,b,c){if(null!=a)if(\"string\"===typeof a)a=a?new r(a,Ua):Xa();else if(a.constructor!==r)if(Ra(a))a=c?bb(a):a.length?new r(new Uint8Array(a),Ua):Xa();else{if(!b)throw Error();a=void 0}return a}var cc;const dc=[];A(dc,39);cc=Object.freeze(dc);function C(a){if(a&2)throw Error();}let D;function ec(a,b){(b=D?b[D]:void 0)&&(a[D]=x(b))}let fc;function gc(a,b){a.__closure__error__context__984382||(a.__closure__error__context__984382={});a.__closure__error__context__984382.severity=b};function hc(a){if(null==a)return a;if(\"number\"===typeof a||\"NaN\"===a||\"Infinity\"===a||\"-Infinity\"===a)return Number(a)}function ic(a){if(null!=a){if(\"boolean\"!==typeof a){var b=typeof a;throw Error(`Expected boolean but got ${\"object\"!=b?b:a?Array.isArray(a)?\"array\":b:\"null\"}: ${a}`);}a=!!a}return a}function kc(a){return\"number\"===typeof a&&Number.isFinite(a)||!!a&&\"string\"===typeof a&&isFinite(a)}\nfunction lc(a){if(null==a)return a;if(\"string\"===typeof a){if(!a)return;a=+a}if(\"number\"===typeof a)return a}function mc(a){if(\"string\"!==typeof a)throw Error();return a}function nc(a){if(null!=a&&\"string\"!==typeof a)throw Error();return a}function oc(a){return null==a||\"string\"===typeof a?a:void 0}function pc(a,b,c){var d=!1;if(null!=a&&\"object\"===typeof a&&!(d=Array.isArray(a))&&a.F===$b)return a;if(d){var e=d=z(a);0===e&&(e|=c&32);e|=c&2;e!==d&&A(a,e);return new b(a)}};let qc,rc;function sc(a){switch(typeof a){case \"number\":return 0<a?void 0:0===a?rc||=[0,void 0]:[-a,void 0];case \"string\":return[0,a];case \"object\":return a}}\nfunction tc(a,b,c){null==a&&(a=qc);qc=void 0;if(null==a){var d=96;c?(a=[c],d|=512):a=[];b&&(d=d&-2095105|(b&1023)<<11)}else{if(!Array.isArray(a))throw Error();d=z(a);if(d&64)return fc&&delete a[fc],a;d|=64;if(c&&(d|=512,c!==a[0]))throw Error();a:{c=a;var e=c.length;if(e){const g=e-1;var f=c[g];if(ac(f)){d|=256;b=+!!(d&512)-1;e=g-b;1024<=e&&(uc(c,b,f),e=1023);d=d&-2095105|(e&1023)<<11;break a}}b&&(f=+!!(d&512)-1,b=Math.max(b,e-f),1024<b&&(uc(c,f,{}),d|=256,b=1023),d=d&-2095105|(b&1023)<<11)}}A(a,d);\nreturn a}function uc(a,b,c){const d=1023+b,e=a.length;for(let f=d;f<e;f++){const g=a[f];null!=g&&g!==c&&(c[f-b]=g)}a.length=d+1;a[d]=c};function vc(a){switch(typeof a){case \"number\":return isFinite(a)?a:String(a);case \"boolean\":return a?1:0;case \"object\":if(a&&!Array.isArray(a)){if(Ra(a))return Ma(a);if(a instanceof r){const b=a.H;return null==b?\"\":\"string\"===typeof b?b:a.H=Ma(b)}}}return a};function wc(a,b,c){const d=x(a);var e=d.length;const f=b&256?d[e-1]:void 0;e+=f?-1:0;for(b=b&512?1:0;b<e;b++)d[b]=c(d[b]);if(f){b=d[b]={};for(const g in f)b[g]=c(f[g])}ec(d,a);return d}function xc(a,b,c,d,e,f){if(null!=a){if(Array.isArray(a))a=e&&0==a.length&&z(a)&1?void 0:f&&z(a)&2?a:yc(a,b,c,void 0!==d,e,f);else if(ac(a)){const g={};for(let h in a)g[h]=xc(a[h],b,c,d,e,f);a=g}else a=b(a,d);return a}}\nfunction yc(a,b,c,d,e,f){const g=d||c?z(a):0;d=d?!!(g&32):void 0;const h=x(a);for(let k=0;k<h.length;k++)h[k]=xc(h[k],b,c,d,e,f);c&&(ec(h,a),c(g,h));return h}function zc(a){return a.F===$b?a.toJSON():vc(a)};function Ac(a,b,c=Yb){if(null!=a){if(Ka&&a instanceof Uint8Array)return b?a:new Uint8Array(a);if(Array.isArray(a)){const d=z(a);return d&2?a:!b||d&68||!(d&32||0===d)?yc(a,Ac,d&4?Yb:c,!0,!1,!0):(A(a,d|34),a)}a.F===$b&&(b=a.m,c=B(b),a=c&2?a:Bc(a,b,c,!0));return a}}function Cc(a){const b=a.m;return Bc(a,b,B(b),!1)}function Bc(a,b,c,d){a=a.constructor;qc=b=Dc(b,c,d);b=new a(b);qc=void 0;return b}function Dc(a,b,c){const d=c||b&2?Yb:Xb,e=!!(b&32);a=wc(a,b,f=>Ac(f,e,d));Tb(a,32|(c?2:0));return a}\nfunction Ec(a){const b=a.m,c=B(b);return c&2?Bc(a,b,c,!1):a};function E(a,b){a=a.m;return Fc(a,B(a),b)}function Fc(a,b,c,d){if(-1===c)return null;if(c>=Zb(b)){if(b&256)return a[a.length-1][c]}else{var e=a.length;if(d&&b&256&&(d=a[e-1][c],null!=d))return d;b=c+(+!!(b&512)-1);if(b<e)return a[b]}}function F(a,b,c,d){const e=a.m,f=B(e);C(f);G(e,f,b,c,d);return a}\nfunction G(a,b,c,d,e){var f=Zb(b);if(c>=f||e){e=b;if(b&256)f=a[a.length-1];else{if(null==d)return;f=a[f+(+!!(b&512)-1)]={};e|=256}f[c]=d;e!==b&&A(a,e)}else a[c+(+!!(b&512)-1)]=d,b&256&&(a=a[a.length-1],c in a&&delete a[c])}function Gc(a,b,c,d,e){var f=b&2;let g=Fc(a,b,c,e);Array.isArray(g)||(g=cc);const h=z(g);h&1||Wb(g);if(f)h&2||Tb(g,34),d&1||Object.freeze(g);else{f=!(d&2);const k=h&2;d&1||!k?f&&h&32&&!k&&Vb(g,32):(g=Wb(x(g)),G(a,b,c,g,e))}return g}\nfunction Hc(a){a=a.m;const b=B(a),c=Fc(a,b,1),d=bc(c,!0,!!(b&34));null!=d&&d!==c&&G(a,b,1,d);return d}function Ic(a,b,c){a=a.m;const d=B(a);C(d);if(null==c)G(a,d,b);else{if(!(z(c)&4)){Object.isFrozen(c)&&(c=x(c));for(let e=0;e<c.length;e++)c[e]=mc(c[e]);A(c,5)}G(a,d,b,c)}}function Jc(a,b){a=a.m;const c=B(a);C(c);G(a,c,2,\"\"===b?void 0:b)}function Kc(a,b){a=a.m;return Lc(a,B(a),Mc)===b?b:-1}\nfunction Lc(a,b,c){let d=0;for(let e=0;e<c.length;e++){const f=c[e];null!=Fc(a,b,f)&&(0!==d&&G(a,b,d),d=f)}return d}function Nc(a,b,c,d){const e=B(a);C(e);const f=Fc(a,e,c,d);let g;if(null!=f&&f.F===$b)return b=Ec(f),b!==f&&G(a,e,c,b,d),b.m;if(Array.isArray(f)){const h=z(f);h&2?g=Dc(f,h,!1):g=f;g=tc(g,b[0],b[1])}else g=tc(void 0,b[0],b[1]);g!==f&&G(a,e,c,g,d);return g}function Oc(a,b,c,d){a=a.m;const e=B(a),f=Fc(a,e,c,d);b=pc(f,b,e);b!==f&&null!=b&&G(a,e,c,b,d);return b}\nfunction H(a,b,c){b=Oc(a,b,c,!1);if(null==b)return b;a=a.m;const d=B(a);if(!(d&2)){const e=Ec(b);e!==b&&(b=e,G(a,d,c,b,!1))}return b}\nfunction Pc(a,b,c,d){var e=!!(b&2),f=Gc(a,b,1,1);if(f===cc||!(z(f)&4)){var g=f;f=!!(b&2);var h=!!(z(g)&2);e=g;!f&&h&&(g=x(g));var k=b|(h?2:0);h=h||void 0;let l=0,t=0;for(;l<g.length;l++){const M=pc(g[l],c,k);void 0!==M&&(h=h||B(M.m)&2,g[t++]=M)}t<l&&(g.length=t);c=g;g=z(c);k=g|5;h=h?k&-9:k|8;g!=h&&(Object.isFrozen(c)&&(c=x(c)),A(c,h));g=c;e!==g&&G(a,b,1,g);(f&&2!==d||1===d)&&Object.freeze(g);return g}if(3===d)return f;e?2===d&&(d=z(f),f=x(f),A(f,d),G(a,b,1,f)):(e=Object.isFrozen(f),1===d?e||Object.freeze(f):\n(d=z(f),c=d&-35,e&&(f=x(f),d=0,G(a,b,1,f)),d!==c&&A(f,c)));return f}function Qc(a,b){var c=a.m,d=B(c);a=!!(d&2);b=Pc(c,d,b,a?1:2);if(!(a||z(b)&8)){for(a=0;a<b.length;a++)c=b[a],d=Ec(c),c!==d&&(b[a]=d);Tb(b,8)}return b}function I(a,b,c,d,e){null==d&&(d=void 0);return F(a,c,d,e)}function Rc(a,b,c){var d=Sc;null==c&&(c=void 0);a=a.m;const e=B(a);C(e);(d=Lc(a,e,d))&&d!==b&&null!=c&&G(a,e,d);G(a,e,b,c)}\nfunction Tc(a,b){var c=Uc;a=a.m;const d=B(a);C(d);a=Pc(a,d,c,2);b=null!=b?b:new c;a.push(b);b.B()&&Vb(a,8)}function Vc(a){a=E(a,2);a=null==a?a:kc(a)?\"number\"===typeof a?a:a:void 0;return a}function Wc(a){return a??0}function J(a,b,c){c=mc(c);a=a.m;const d=B(a);C(d);Gc(a,d,b,2).push(c)};function Xc(a,b,c){b.g?b.j(a,b.g,b.h,c,!0):b.j(a,b.h,c,!0)}var K=class{constructor(a,b){this.m=tc(a,b)}toJSON(){var a=yc(this.m,zc,void 0,void 0,!1,!1);return Yc(this,a,!0)}B(){return!!(z(this.m)&2)}};K.prototype.F=$b;K.prototype.toString=function(){return Yc(this,this.m,!1).toString()};\nfunction Yc(a,b,c){var d=a.constructor.C,e=Zb(B(c?a.m:b)),f=!1;if(d){if(!c){b=x(b);var g;if(b.length&&ac(g=b[b.length-1]))for(f=0;f<d.length;f++)if(d[f]>=e){Object.assign(b[b.length-1]={},g);break}f=!0}e=b;c=!c;g=B(a.m);a=Zb(g);g=+!!(g&512)-1;var h;for(let la=0;la<d.length;la++){var k=d[la];if(k<a){k+=g;var l=e[k];null==l?e[k]=c?cc:Wb([]):c&&l!==cc&&Ub(l)}else{if(!h){var t=void 0;e.length&&ac(t=e[e.length-1])?h=t:e.push(h={})}l=h[k];null==h[k]?h[k]=c?cc:Wb([]):c&&l!==cc&&Ub(l)}}}d=b.length;if(!d)return b;\nlet M,yd;if(ac(h=b[d-1])){a:{var ma=h;t={};e=!1;for(let la in ma)c=ma[la],Array.isArray(c)&&c!=c&&(e=!0),null!=c?t[la]=c:e=!0;if(e){for(let la in t){ma=t;break a}ma=null}}ma!=h&&(M=!0);d--}for(;0<d;d--){h=b[d-1];if(null!=h)break;yd=!0}if(!M&&!yd)return b;var jc;f?jc=b:jc=Array.prototype.slice.call(b,0,d);b=jc;f&&(b.length=d);ma&&b.push(ma);return b};function Zc(a){return{P:$c,J:a}}function ad(a,b){if(Array.isArray(b)){var c=z(b);if(c&4)return b;for(var d=0,e=0;d<b.length;d++){const f=a(b[d]);null!=f&&(b[e++]=f)}e<d&&(b.length=e);A(b,c|5);c&2&&Object.freeze(b);return b}}const bd=Symbol();\nfunction cd(a){let b=a[bd];if(!b){const c=dd(a),d=c.l;b=d?(e,f)=>d(e,f,c):(e,f)=>{for(;ub(f)&&4!=f.h;){var g=f.l,h=c[g];if(!h){var k=c.h;k&&(k=k[g])&&(h=c[g]=ed(k))}h&&h(f,e,g)||(h=f,g=h.j,vb(h),h.O?h=void 0:(k=h.g.g-g,h.g.g=g,h=rb(h.g,k)),g=e,h&&(D||=Symbol(),(k=g[D])?k.push(h):g[D]=[h]))}(f=c.j)&&(e[fc||=Symbol()]=f)};a[bd]=b}return b}function fd(a){if(a=a.J)return cd(a)}function ed(a){const b=fd(a),c=a.P.g;if(b){const d=dd(a.J).g;return(e,f,g)=>c(e,f,g,d,b)}return(d,e,f)=>c(d,e,f)}\nfunction gd(a,b,c,d){b.g=sc(a[0]);let e=1;if(a.length>e&&!(a[e]instanceof Sb)){var f=a[e++];if(Array.isArray(f))return b.l=f[0],b.h=f[1],b;b.h=f}for(f=0;e<a.length;){const t=a[e++];var g=a[e];\"number\"===typeof g?(e++,f+=g):f++;t.j&&(g=b.j,g||(b.j=g=[]),g.push(f));for(g=e;g<a.length&&!(a[g]instanceof Sb);)g++;if(g-=e){var h=a,k=e,l=h[k];\"function\"==typeof l&&(l=l(),h[k]=l);if((h=Array.isArray(l))&&!(h=hd in l||id in l)&&(h=0<l.length)){h=l;k=h[0];const M=sc(k);null!=M&&M!==k&&(h[0]=M);h=null!=M}(l=\nh?l:void 0)?(e++,b[f]=1===g?d(t,l):d(t,l,a[e++])):b[f]=c(t,a[e++])}else b[f]=c(t)}return b}const jd=Symbol();function kd(a){let b=a[jd];if(!b){const c=ld(a);b=(d,e)=>md(d,e,c);a[jd]=b}return b}const id=Symbol();function nd(a){return a.h}function od(a,b){let c,d;const e=a.h;return(f,g,h)=>e(f,g,h,d||=ld(b).g,c||=kd(b))}function ld(a){let b=a[id];if(b)return b;b=gd(a,a[id]={},nd,od);hd in a&&id in a&&(a.length=0);return b}const hd=Symbol();\nfunction pd(a,b){const c=a.g;return b?(d,e,f)=>c(d,e,f,b):c}function qd(a,b,c){const d=a.g;let e,f;return(g,h,k)=>d(g,h,k,f||=dd(b).g,e||=cd(b),c)}function dd(a){let b=a[hd];if(b)return b;b=gd(a,a[hd]={},pd,qd);hd in a&&id in a&&(a.length=0);return b}function rd(a,b){var c=a[b];if(c)return c;if(c=a.h)if(c=c[b]){var d=c.J,e=c.P.h;if(d){const f=kd(d),g=ld(d).g;c=(h,k,l)=>e(h,k,l,g,f)}else c=e;return a[b]=c}}\nfunction md(a,b,c){for(var d=B(a),e=+!!(d&512)-1,f=a.length,g=d&512?1:0,h=f+(d&256?-1:0);g<h;g++){const k=a[g];if(null==k)continue;const l=g-e,t=rd(c,l);t&&t(b,k,l)}if(d&256){d=a[f-1];for(let k in d)e=+k,Number.isNaN(e)||(f=d[k],null!=f&&(h=rd(c,e))&&h(b,f,e))}if(a=D?a[D]:void 0)for(Nb(b,b.g.end()),c=0;c<a.length;c++)Nb(b,Ya(a[c])||Ta())}function L(a,b){return new Sb(a,b,!1)}function sd(a,b){return new Sb(a,b,!0)}function N(a,b,c){G(a,B(a),b,c)}\nfunction td(a,b,c){a:if(null!=b){if(kc(b)){if(\"string\"===typeof b)break a;if(\"number\"===typeof b)break a}b=void 0}null!=b&&(\"string\"===typeof b&&Fb(b),null!=b&&(w(a,c,0),\"number\"===typeof b?(a=a.g,fb(b),Ib(a,u,v)):(c=Fb(b),Ib(a.g,c.h,c.g))))}function ud(a,b,c){b=lc(b);null!=b&&null!=b&&(w(a,c,0),Kb(a.g,b))}function vd(a,b,c){b=null==b?b:\"boolean\"===typeof b||\"number\"===typeof b?!!b:void 0;null!=b&&(w(a,c,0),a.g.g.push(b?1:0))}function wd(a,b,c){b=oc(b);null!=b&&Qb(a,c,qa(b))}\nfunction xd(a,b,c,d,e){b=b instanceof K?b.m:Array.isArray(b)?tc(b,d[0],d[1]):void 0;null!=b&&(c=Ob(a,c),e(b,a),Pb(a,c))}function zd(a,b,c){b=null==b||\"string\"===typeof b||Ra(b)||b instanceof r?b:void 0;null!=b&&Qb(a,c,cb(b).buffer)}\nvar Ad=L(function(a,b,c){if(1!==a.h)return!1;var d=a.g;a=pb(d);const e=pb(d);d=2*(e>>31)+1;const f=e>>>20&2047;a=4294967296*(e&1048575)+a;N(b,c,2047==f?a?NaN:Infinity*d:0==f?d*Math.pow(2,-1074)*a:d*Math.pow(2,f-1075)*(a+4503599627370496));return!0},function(a,b,c){b=hc(b);null!=b&&(w(a,c,1),a=a.g,c=eb||=new DataView(new ArrayBuffer(8)),c.setFloat64(0,+b,!0),u=c.getUint32(0,!0),v=c.getUint32(4,!0),Lb(a,u),Lb(a,v))}),Bd=L(function(a,b,c){if(5!==a.h)return!1;N(b,c,a.g.s());return!0},function(a,b,c){b=\nhc(b);null!=b&&(w(a,c,5),a=a.g,hb(b),Lb(a,u))}),Cd=sd(function(a,b,c){if(5!==a.h&&2!==a.h)return!1;b=Gc(b,B(b),c,2,!1);2==a.h?zb(a,sb.prototype.s,b):b.push(a.g.s());return!0},function(a,b,c){b=ad(hc,b);if(null!=b&&b.length){w(a,c,2);Jb(a.g,4*b.length);for(let d=0;d<b.length;d++)c=a.g,hb(b[d]),Lb(c,u)}}),Dd=L(function(a,b,c){if(0!==a.h)return!1;N(b,c,nb(a.g,jb));return!0},td),Ed=L(function(a,b,c){if(0!==a.h)return!1;a=nb(a.g,jb);N(b,c,0===a?void 0:a);return!0},td),Fd=L(function(a,b,c){if(0!==a.h)return!1;\nN(b,c,nb(a.g,ib));return!0},function(a,b,c){a:if(null!=b){if(kc(b)){if(\"string\"===typeof b)break a;if(\"number\"===typeof b)break a}b=void 0}null!=b&&(\"string\"===typeof b&&Cb(b),null!=b&&(w(a,c,0),\"number\"===typeof b?(a=a.g,fb(b),Ib(a,u,v)):(c=Cb(b),Ib(a.g,c.h,c.g))))}),Gd=L(function(a,b,c){if(0!==a.h)return!1;N(b,c,a.g.h());return!0},ud),Hd=sd(function(a,b,c){if(0!==a.h&&2!==a.h)return!1;b=Gc(b,B(b),c,2,!1);2==a.h?zb(a,sb.prototype.h,b):b.push(a.g.h());return!0},function(a,b,c){b=ad(lc,b);if(null!=\nb&&b.length){c=Ob(a,c);for(let d=0;d<b.length;d++)Kb(a.g,b[d]);Pb(a,c)}}),Id=L(function(a,b,c){if(0!==a.h)return!1;a=a.g.h();N(b,c,0===a?void 0:a);return!0},ud),O=L(function(a,b,c){if(0!==a.h)return!1;N(b,c,ob(a.g));return!0},vd),P=L(function(a,b,c){if(0!==a.h)return!1;a=ob(a.g);N(b,c,!1===a?void 0:a);return!0},vd),Q=sd(function(a,b,c){if(2!==a.h)return!1;a=xb(a);const d=B(b);C(d);Gc(b,d,c,2).push(a);return!0},function(a,b,c){b=ad(oc,b);if(null!=b)for(let e=0;e<b.length;e++){var d=b[e];null!=d&&Qb(a,\nc,qa(d))}}),R=L(function(a,b,c){if(2!==a.h)return!1;a=xb(a);N(b,c,\"\"===a?void 0:a);return!0},wd),S=L(function(a,b,c){if(2!==a.h)return!1;N(b,c,xb(a));return!0},wd),$c=L(function(a,b,c,d,e){if(2!==a.h)return!1;wb(a,Nc(b,d,c,!0),e);return!0},xd),T=L(function(a,b,c,d,e){if(2!==a.h)return!1;wb(a,Nc(b,d,c),e);return!0},xd),U=sd(function(a,b,c,d,e){if(2!==a.h)return!1;d=tc(void 0,d[0],d[1]);const f=B(b);C(f);let g=Gc(b,f,c,3);if(Object.isFrozen(g)||z(g)&4)g=x(g),G(b,f,c,g);g.push(d);wb(a,d,e);return!0},\nfunction(a,b,c,d,e){if(Array.isArray(b))for(let f=0;f<b.length;f++)xd(a,b[f],c,d,e)}),V=L(function(a,b,c,d,e,f){if(2!==a.h)return!1;const g=B(b);C(g);(f=Lc(b,g,f))&&c!==f&&G(b,g,f);b=Nc(b,d,c);wb(a,b,e);return!0},xd),Jd=L(function(a,b,c){if(2!==a.h)return!1;N(b,c,yb(a));return!0},zd),Kd=L(function(a,b,c){if(0!==a.h)return!1;N(b,c,a.g.h());return!0},function(a,b,c){b=lc(b);null!=b&&(b=parseInt(b,10),w(a,c,0),Kb(a.g,b))}),Ld=sd(function(a,b,c){if(0!==a.h&&2!==a.h)return!1;b=Gc(b,B(b),c,2,!1);2==a.h?\nzb(a,sb.prototype.v,b):b.push(a.g.h());return!0},function(a,b,c){b=ad(lc,b);if(null!=b&&b.length){c=Ob(a,c);for(let d=0;d<b.length;d++)Kb(a.g,b[d]);Pb(a,c)}});class Md{constructor(a,b){this.h=a;this.g=b;this.j=I;this.defaultValue=void 0}};function Nd(a,b){return(c,d)=>{a:{if(Bb.length){const g=Bb.pop();g.A(d);lb(g.g,c,d);c=g}else c=new Ab(c,d);try{var e=new a;const g=e.m;cd(b)(g,c);fc&&delete g[fc];var f=e;break a}finally{e=c.g,e.j=null,e.u=!1,e.o=0,e.l=0,e.g=0,e.I=!1,c.l=-1,c.h=-1,100>Bb.length&&Bb.push(c)}f=void 0}return f}};var Od=[0,R,L(function(a,b,c){if(2!==a.h)return!1;a=yb(a);N(b,c,a===Xa()?void 0:a);return!0},function(a,b,c){if(null!=b){if(b instanceof K){const d=b.da;d&&(b=d(b),null!=b&&Qb(a,c,cb(b).buffer));return}if(Array.isArray(b))return}zd(a,b,c)})];function Pd(a,b){a.l(b);100>a.h&&(a.h++,b.next=a.g,a.g=b)}class Qd{constructor(a,b){this.j=a;this.l=b;this.h=0;this.g=null}get(){let a;0<this.h?(this.h--,a=this.g,this.g=a.next,a.next=null):a=this.j();return a}};try{(new self.OffscreenCanvas(0,0)).getContext(\"2d\")}catch(a){};function Rd(){};function Sd(a,b){for(const c in a)b.call(void 0,a[c],c,a)}const Td=\"constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf\".split(\" \");function Ud(a,b){let c,d;for(let e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(let f=0;f<Td.length;f++)c=Td[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};var Vd;var Wd=class{constructor(a){this.K=a}toString(){return this.K+\"\"}};Wd.prototype.Y=!0;function Xd(a){return a instanceof Wd&&a.constructor===Wd?a.K:\"type_error:TrustedResourceUrl\"}var Yd={};function Zd(a){if(void 0===Vd){var b=null;var c=m.trustedTypes;if(c&&c.createPolicy){try{b=c.createPolicy(\"goog#html\",{createHTML:fa,createScript:fa,createScriptURL:fa})}catch(d){m.console&&m.console.error(d.message)}Vd=b}else Vd=b}a=(b=Vd)?b.createScriptURL(a):a;return new Wd(a,Yd)};function $d(a,b){a:{var c=(a.ownerDocument&&a.ownerDocument.defaultView||m).document;if(c.querySelector&&(c=c.querySelector(\"script[nonce]\"))&&(c=c.nonce||c.getAttribute(\"nonce\"))&&ae.test(c))break a;c=\"\"}c&&a.setAttribute(\"nonce\",c);a.src=Xd(b)}var ae=/^[\\w+/_-]+[=]{0,2}$/;function be(a,b){Sd(b,function(c,d){c&&\"object\"==typeof c&&c.Y&&(c=c.K.toString());\"style\"==d?a.style.cssText=c:\"class\"==d?a.className=c:\"for\"==d?a.htmlFor=c:ce.hasOwnProperty(d)?a.setAttribute(ce[d],c):0==d.lastIndexOf(\"aria-\",0)||0==d.lastIndexOf(\"data-\",0)?a.setAttribute(d,c):a[d]=c})}\nvar ce={cellpadding:\"cellPadding\",cellspacing:\"cellSpacing\",colspan:\"colSpan\",frameborder:\"frameBorder\",height:\"height\",maxlength:\"maxLength\",nonce:\"nonce\",role:\"role\",rowspan:\"rowSpan\",type:\"type\",usemap:\"useMap\",valign:\"vAlign\",width:\"width\"};function de(a,b){b=String(b);\"application/xhtml+xml\"===a.contentType&&(b=b.toLowerCase());return a.createElement(b)}function ee(a){this.g=a||m.document||document};var fe;\nfunction ge(){var a=m.MessageChannel;\"undefined\"===typeof a&&\"undefined\"!==typeof window&&window.postMessage&&window.addEventListener&&!p(\"Presto\")&&(a=function(){var e=de(document,\"IFRAME\");e.style.display=\"none\";document.documentElement.appendChild(e);var f=e.contentWindow;e=f.document;e.open();e.close();var g=\"callImmediate\"+Math.random(),h=\"file:\"==f.location.protocol?\"*\":f.location.protocol+\"//\"+f.location.host;e=ca(function(k){if((\"*\"==h||k.origin==h)&&k.data==g)this.port1.onmessage()},this);\nf.addEventListener(\"message\",e,!1);this.port1={};this.port2={postMessage:function(){f.postMessage(g,h)}}});if(\"undefined\"!==typeof a&&!Ba()){var b=new a,c={},d=c;b.port1.onmessage=function(){if(void 0!==c.next){c=c.next;var e=c.N;c.N=null;e()}};return function(e){d.next={N:e};d=d.next;b.port2.postMessage(0)}}return function(e){m.setTimeout(e,0)}};function he(){var a=ie;let b=null;a.g&&(b=a.g,a.g=a.g.next,a.g||(a.h=null),b.next=null);return b}class je{constructor(){this.h=this.g=null}add(a,b){const c=ke.get();c.set(a,b);this.h?this.h.next=c:this.g=c;this.h=c}}var ke=new Qd(()=>new le,a=>a.reset());class le{constructor(){this.next=this.g=this.h=null}set(a,b){this.h=a;this.g=b;this.next=null}reset(){this.next=this.g=this.h=null}};let me,ne=!1,ie=new je,pe=(a,b)=>{me||oe();ne||(me(),ne=!0);ie.add(a,b)},oe=()=>{if(m.Promise&&m.Promise.resolve){const a=m.Promise.resolve(void 0);me=()=>{a.then(qe)}}else me=()=>{var a=qe;\"function\"!==typeof m.setImmediate||m.Window&&m.Window.prototype&&(q()||!p(\"Edge\"))&&m.Window.prototype.setImmediate==m.setImmediate?(fe||=ge(),fe(a)):m.setImmediate(a)}};var qe=()=>{let a;for(;a=he();){try{a.h.call(a.g)}catch(b){ra(b)}Pd(ke,a)}ne=!1};function re(){};function se(a){if(!a)return!1;try{return!!a.$goog_Thenable}catch(b){return!1}};function W(a){this.g=0;this.u=void 0;this.l=this.h=this.j=null;this.o=this.s=!1;if(a!=Rd)try{var b=this;a.call(void 0,function(c){te(b,2,c)},function(c){te(b,3,c)})}catch(c){te(this,3,c)}}function ue(){this.next=this.j=this.h=this.l=this.g=null;this.o=!1}ue.prototype.reset=function(){this.j=this.h=this.l=this.g=null;this.o=!1};var ve=new Qd(function(){return new ue},function(a){a.reset()});function we(a,b,c){var d=ve.get();d.l=a;d.h=b;d.j=c;return d}\nW.prototype.then=function(a,b,c){return xe(this,\"function\"===typeof a?a:null,\"function\"===typeof b?b:null,c)};W.prototype.$goog_Thenable=!0;W.prototype.cancel=function(a){if(0==this.g){var b=new ye(a);pe(function(){ze(this,b)},this)}};function ze(a,b){if(0==a.g)if(a.j){var c=a.j;if(c.h){for(var d=0,e=null,f=null,g=c.h;g&&(g.o||(d++,g.g==a&&(e=g),!(e&&1<d)));g=g.next)e||(f=g);e&&(0==c.g&&1==d?ze(c,b):(f?(d=f,d.next==c.l&&(c.l=d),d.next=d.next.next):Ae(c),Be(c,e,3,b)))}a.j=null}else te(a,3,b)}\nfunction Ce(a,b){a.h||2!=a.g&&3!=a.g||De(a);a.l?a.l.next=b:a.h=b;a.l=b}function xe(a,b,c,d){var e=we(null,null,null);e.g=new W(function(f,g){e.l=b?function(h){try{var k=b.call(d,h);f(k)}catch(l){g(l)}}:f;e.h=c?function(h){try{var k=c.call(d,h);void 0===k&&h instanceof ye?g(h):f(k)}catch(l){g(l)}}:g});e.g.j=a;Ce(a,e);return e.g}W.prototype.D=function(a){this.g=0;te(this,2,a)};W.prototype.G=function(a){this.g=0;te(this,3,a)};\nfunction te(a,b,c){if(0==a.g){a===c&&(b=3,c=new TypeError(\"Promise cannot resolve to itself\"));a.g=1;a:{var d=c,e=a.D,f=a.G;if(d instanceof W){Ce(d,we(e||Rd,f||null,a));var g=!0}else if(se(d))d.then(e,f,a),g=!0;else{var h=typeof d;if(\"object\"==h&&null!=d||\"function\"==h)try{var k=d.then;if(\"function\"===typeof k){Ee(d,k,e,f,a);g=!0;break a}}catch(l){f.call(a,l);g=!0;break a}g=!1}}g||(a.u=c,a.g=b,a.j=null,De(a),3!=b||c instanceof ye||Fe(a,c))}}\nfunction Ee(a,b,c,d,e){function f(k){h||(h=!0,d.call(e,k))}function g(k){h||(h=!0,c.call(e,k))}var h=!1;try{b.call(a,g,f)}catch(k){f(k)}}function De(a){a.s||(a.s=!0,pe(a.v,a))}function Ae(a){var b=null;a.h&&(b=a.h,a.h=b.next,b.next=null);a.h||(a.l=null);return b}W.prototype.v=function(){for(var a;a=Ae(this);)Be(this,a,this.g,this.u);this.s=!1};\nfunction Be(a,b,c,d){if(3==c&&b.h&&!b.o)for(;a&&a.o;a=a.j)a.o=!1;if(b.g)b.g.j=null,Ge(b,c,d);else try{b.o?b.l.call(b.j):Ge(b,c,d)}catch(e){He.call(null,e)}Pd(ve,b)}function Ge(a,b,c){2==b?a.l.call(a.j,c):a.h&&a.h.call(a.j,c)}function Fe(a,b){a.o=!0;pe(function(){a.o&&He.call(null,b)})}var He=ra;function ye(a){n.call(this,a)}ea(ye,n);ye.prototype.name=\"cancel\";/*\n\n Copyright 2005, 2007 Bob Ippolito. All Rights Reserved.\n Copyright The Closure Library Authors.\n SPDX-License-Identifier: MIT\n*/\nfunction Ie(a,b){this.o=[];this.M=a;this.L=b||null;this.l=this.j=!1;this.h=void 0;this.D=this.T=this.u=!1;this.s=0;this.g=null;this.v=0}ea(Ie,re);Ie.prototype.cancel=function(a){if(this.j)this.h instanceof Ie&&this.h.cancel();else{if(this.g){const b=this.g;delete this.g;a?b.cancel(a):(b.v--,0>=b.v&&b.cancel())}this.M?this.M.call(this.L,this):this.D=!0;this.j||(a=new Je(this),Ke(this),Le(this,!1,a))}};Ie.prototype.G=function(a,b){this.u=!1;Le(this,a,b)};\nfunction Le(a,b,c){a.j=!0;a.h=c;a.l=!b;Me(a)}function Ke(a){if(a.j){if(!a.D)throw new Ne(a);a.D=!1}}function Oe(a,b,c,d){a.o.push([b,c,d]);a.j&&Me(a)}Ie.prototype.then=function(a,b,c){let d,e;const f=new W(function(g,h){e=g;d=h});Oe(this,e,function(g){g instanceof Je?f.cancel():d(g);return Pe},this);return f.then(a,b,c)};Ie.prototype.$goog_Thenable=!0;function Qe(a){return Da(a.o,function(b){return\"function\"===typeof b[1]})}var Pe={};\nfunction Me(a){if(a.s&&a.j&&Qe(a)){var b=a.s,c=Re[b];c&&(m.clearTimeout(c.g),delete Re[b]);a.s=0}a.g&&(a.g.v--,delete a.g);b=a.h;for(var d=c=!1;a.o.length&&!a.u;){var e=a.o.shift(),f=e[0];const h=e[1];e=e[2];if(f=a.l?h:f)try{var g=f.call(e||a.L,b);g===Pe&&(g=void 0);void 0!==g&&(a.l=a.l&&(g==b||g instanceof Error),a.h=b=g);if(se(b)||\"function\"===typeof m.Promise&&b instanceof m.Promise)d=!0,a.u=!0}catch(k){b=k,a.l=!0,Qe(a)||(c=!0)}}a.h=b;d&&(g=ca(a.G,a,!0),d=ca(a.G,a,!1),b instanceof Ie?(Oe(b,g,d),\nb.T=!0):b.then(g,d));c&&(b=new Se(b),Re[b.g]=b,a.s=b.g)}function Ne(){n.call(this)}ea(Ne,n);Ne.prototype.message=\"Deferred has already fired\";Ne.prototype.name=\"AlreadyCalledError\";function Je(){n.call(this)}ea(Je,n);Je.prototype.message=\"Deferred was canceled\";Je.prototype.name=\"CanceledError\";function Se(a){this.g=m.setTimeout(ca(this.j,this),0);this.h=a}Se.prototype.j=function(){delete Re[this.g];throw this.h;};var Re={};function Te(a){const b={},c=b.document||document,d=Xd(a).toString(),e=de((new ee(c)).g,\"SCRIPT\");var f={R:e,S:void 0};const g=new Ie(Ue,f);let h=null;const k=null!=b.timeout?b.timeout:5E3;0<k&&(h=window.setTimeout(function(){Ve(e,!0);var l=new We(1,\"Timeout reached for loading script \"+d);Ke(g);Le(g,!1,l)},k),f.S=h);e.onload=e.onreadystatechange=function(){e.readyState&&\"loaded\"!=e.readyState&&\"complete\"!=e.readyState||(Ve(e,b.ca||!1,h),Ke(g),Le(g,!0,null))};e.onerror=function(){Ve(e,!0,h);var l=\nnew We(0,\"Error while loading script \"+d);Ke(g);Le(g,!1,l)};f=b.attributes||{};Ud(f,{type:\"text/javascript\",charset:\"UTF-8\"});be(e,f);$d(e,a);Xe(c).appendChild(e);return g}function Xe(a){var b;return(b=(a||document).getElementsByTagName(\"HEAD\"))&&0!==b.length?b[0]:a.documentElement}function Ue(){if(this&&this.R){const a=this.R;a&&\"SCRIPT\"==a.tagName&&Ve(a,!0,this.S)}}\nfunction Ve(a,b,c){null!=c&&m.clearTimeout(c);a.onload=()=>{};a.onerror=()=>{};a.onreadystatechange=()=>{};b&&window.setTimeout(function(){a&&a.parentNode&&a.parentNode.removeChild(a)},0)}function We(a,b){let c=\"Jsloader error (code #\"+a+\")\";b&&(c+=\": \"+b);n.call(this,c);this.code=a}ea(We,n);/*\n\n SPDX-License-Identifier: Apache-2.0\n*/\nfunction Ye(a,...b){if(0===b.length)return Zd(a[0]);let c=a[0];for(let d=0;d<b.length;d++)c+=encodeURIComponent(b[d])+a[d+1];return Zd(c)};var Ze=[0,S];var $e=[0,Gd,Kd,O,O,Hd,Kd,Kd];var af=[0,O,O];var bf=class extends K{constructor(){super()}};bf.C=[6];var cf=[0,O,S,O,Kd,Kd,Ld,S,S,T,af,Kd];var df=[0,S,S,S];var ef=class extends K{constructor(){super()}},ff=[0];var gf=[0,Gd];var hf=[1,2,3,4,5];var jf=class extends K{constructor(a){super(a,2)}},kf={},lf=[-2,kf,O];kf[336783863]=Zc([0,S,O,O,Gd,T,[0,V,ff,hf,V,cf,hf,V,df,hf,V,gf,hf,V,$e,hf],T,Ze]);var mf=[0,R,P];var nf=[0,Ed,Ed,P,P,P,P,Ed,Hd,R,Id,Ed,Ed,P,Id,P,P,P,R];var of=class extends K{constructor(a){super(a,1)}},pf=[-1,{}];var qf=[0,S,T,2,pf];var rf=[0,S,Q,T,pf];var Uc=class extends K{constructor(a){super(a,500)}A(a){return I(this,jf,7,a)}};Uc.C=[3,4,5,6,8,13,17,1005];var sf=[-500,R,R,Q,Q,Q,Q,T,lf,U,Od,Id,Id,T,qf,T,rf,U,mf,R,T,nf,Id,Q,Q,988];var tf=[0,R,R,T,pf];var uf=[-500,S,S,T,[-1,{}],S,999];var vf=[-500,S,Q,Q,T,[-2,{},O],Q,998,Q];var wf=[-500,S,Q,T,pf,Q,999];var xf=class extends K{constructor(){super(void 0,500)}A(a){return I(this,of,1001,a)}};xf.C=[1,6,7,9,10,15,16,17,14,1002];xf.prototype.g=function(a){return function(){const b=new Rb;md(this.m,b,ld(a));Nb(b,b.g.end());const c=new Uint8Array(b.h),d=b.j,e=d.length;let f=0;for(let g=0;g<e;g++){const h=d[g];c.set(h,f);f+=h.length}b.j=[c];return c}}([-500,U,sf,U,5,uf,U,vf,Id,U,wf,Q,Id,T,qf,T,rf,U,tf,Q,Q,Q,T,nf,R,R,P,T,980,pf,U,Od]);var yf=class extends K{constructor(a){super(a)}},zf=[0,Gd,Bd,S,S];var Af=class extends K{constructor(a){super(a)}g(){return Qc(this,yf)}};Af.C=[1];var Bf=[0,U,zf];var Cf=class extends K{constructor(a){super(a)}};Cf.C=[4,5];var Df=class extends K{constructor(a){super(a)}},Sc=[1,2,3,4,5];var Ef=class extends K{constructor(a){super(a)}g(){return null!=Hc(this)}h(){return null!=oc(E(this,2))}};var Ff=class extends K{constructor(a){super(a)}},Gf=[0,T,[0,Jd,S,T,[0,Gd,Dd,Dd],T,[0,Fd,Dd]],O,T,[0,V,gf,Sc,V,cf,Sc,V,$e,Sc,V,ff,Sc,V,df,Sc]];var Hf=class extends K{constructor(a){super(a)}};var If=new Md(451755788,Hf);kf[451755788]=Zc([0,T,Gf,T,[0,S,Gd,Bd,Q,Q],Ad]);var Jf=class extends K{constructor(a){super(a)}};var Kf=class extends K{constructor(a){super(a)}};var Lf=new Md(487277289,Kf);kf[487277289]=Zc([0,T,Gf,T,[0,O,O]]);var Mf=class extends K{constructor(a){super(a)}},Nf=[0,Gd,2,S,T,Bf];var Of=class extends K{constructor(a){super(a)}};Of.C=[1];var Pf=Nd(Of,[0,U,Nf,Dd]);var Qf=class extends K{constructor(a){super(a)}};Qf.C=[1];var Rf=class extends K{constructor(a){super(a)}U(){const a=Hc(this);return null==a?Xa():a}};var Sf=class extends K{constructor(a){super(a)}},Mc=[1,2],Tf=[0,V,[0,Cd],Mc,V,[0,Jd],Mc,Gd,S];var Uf=class extends K{constructor(a){super(a)}};Uf.C=[1];var Vf=Nd(Uf,[0,U,Tf,Dd]);async function Wf(a){if(\"function\"===typeof importScripts)importScripts(a.toString());else return\"string\"===typeof a&&(a=Ye`${a}`),Te(a)}\nvar Xf=async(a,b,c,d)=>{b&&await Wf(b);if(!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(c&&(await Wf(c),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");self.Module&&d&&(b=self.Module,b.locateFile=d.locateFile,d.mainScriptUrlOrBlob&&(b.mainScriptUrlOrBlob=d.mainScriptUrlOrBlob));d=await self.ModuleFactory(self.Module||d);self.ModuleFactory=self.Module=void 0;return new a(d,null)};function X(a,b,c){a.l||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");b=a.i.stringToNewUTF8(b);c(b);a.i._free(b)}\nfunction Yf(a,b,c){a.l||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const d=new Uint32Array(b.length);for(let e=0;e<b.length;e++)d[e]=a.i.stringToNewUTF8(b[e]);b=a.i._malloc(4*d.length);a.i.HEAPU32.set(d,b>>2);c(b);for(const e of d)a.i._free(e);a.i._free(b)}function Zf(a,b,c){a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=c}\nfunction $f(a,b,c){let d=[];a.i.simpleListeners=a.i.simpleListeners||{};a.i.simpleListeners[b]=(e,f,g)=>{f?(c(d,g),d=[]):d.push(e)}}\nconst ag=function(a){return class extends a{Z(){this.i._registerModelResourcesGraphService()}}}(class{constructor(a,b){this.j=!0;this.i=a;this.g=null;this.h=0;this.l=\"function\"===typeof this.i._addIntToInputStream;void 0!==b?this.i.canvas=b:((a=\"undefined\"===typeof OffscreenCanvas)||(a=navigator.userAgent,a=a.includes(\"Safari\")&&!a.includes(\"Chrome\")),a?(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=\ndocument.createElement(\"canvas\")):this.i.canvas=new OffscreenCanvas(1,1))}async initializeGraph(a){const b=await (await fetch(a)).arrayBuffer();a=!(a.endsWith(\".pbtxt\")||a.endsWith(\".textproto\"));this.setGraph(new Uint8Array(b),a)}setGraphFromString(a){this.setGraph((new TextEncoder).encode(a),!1)}setGraph(a,b){const c=a.length,d=this.i._malloc(c);this.i.HEAPU8.set(a,d);b?this.i._changeBinaryGraph(c,d):this.i._changeTextGraph(c,d);this.i._free(d)}configureAudio(a,b,c,d,e){this.i._configureAudio||\nconsole.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?');X(this,d||\"input_audio\",f=>{e=e||\"audio_header\";X(this,e,g=>{this.i._configureAudio(f,g,a,b,c)})})}setAutoResizeCanvas(a){this.j=a}setAutoRenderToScreen(a){this.i._setAutoRenderToScreen(a)}setGpuBufferVerticalFlip(a){this.i.gpuOriginForWebTexturesIsBottomLeft=a}attachErrorListener(a){this.i.errorListener=a}attachEmptyPacketListener(a,b){this.i.emptyPacketListeners=this.i.emptyPacketListeners||\n{};this.i.emptyPacketListeners[a]=b}addAudioToStream(a,b,c){this.addAudioToStreamWithShape(a,0,0,b,c)}addAudioToStreamWithShape(a,b,c,d,e){const f=4*a.length;this.h!==f&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(f),this.h=f);this.i.HEAPF32.set(a,this.g/4);X(this,d,g=>{this.i._addAudioToInputStream(this.g,b,c,g,e)})}addGpuBufferToStream(a,b,c){X(this,b,d=>{if(!this.i.canvas)throw Error(\"No OpenGL canvas configured.\");d?this.i._bindTextureToStream(d):this.i._bindTextureToCanvas();var e=this.i.canvas.getContext(\"webgl2\")||\nthis.i.canvas.getContext(\"webgl\");if(!e)throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");this.i.gpuOriginForWebTexturesIsBottomLeft&&e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!0);e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,a);this.i.gpuOriginForWebTexturesIsBottomLeft&&e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,!1);let f;a.videoWidth?(e=a.videoWidth,f=a.videoHeight):a.naturalWidth?(e=a.naturalWidth,f=a.naturalHeight):\n(e=a.width,f=a.height);!this.j||e===this.i.canvas.width&&f===this.i.canvas.height||(this.i.canvas.width=e,this.i.canvas.height=f);const [g,h]=[e,f];this.i._addBoundTextureToStream(d,g,h,c)})}addBoolToStream(a,b,c){X(this,b,d=>{this.i._addBoolToInputStream(a,d,c)})}addDoubleToStream(a,b,c){X(this,b,d=>{this.i._addDoubleToInputStream(a,d,c)})}addFloatToStream(a,b,c){X(this,b,d=>{this.i._addFloatToInputStream(a,d,c)})}addIntToStream(a,b,c){X(this,b,d=>{this.i._addIntToInputStream(a,d,c)})}addStringToStream(a,\nb,c){X(this,b,d=>{X(this,a,e=>{this.i._addStringToInputStream(e,d,c)})})}addStringRecordToStream(a,b,c){X(this,b,d=>{Yf(this,Object.keys(a),e=>{Yf(this,Object.values(a),f=>{this.i._addFlatHashMapToInputStream(e,f,Object.keys(a).length,d,c)})})})}addProtoToStream(a,b,c,d){X(this,c,e=>{X(this,b,f=>{const g=this.i._malloc(a.length);this.i.HEAPU8.set(a,g);this.i._addProtoToInputStream(g,a.length,f,e,d);this.i._free(g)})})}addEmptyPacketToStream(a,b){X(this,a,c=>{this.i._addEmptyPacketToInputStream(c,\nb)})}addBoolToInputSidePacket(a,b){X(this,b,c=>{this.i._addBoolToInputSidePacket(a,c)})}addDoubleToInputSidePacket(a,b){X(this,b,c=>{this.i._addDoubleToInputSidePacket(a,c)})}addFloatToInputSidePacket(a,b){X(this,b,c=>{this.i._addFloatToInputSidePacket(a,c)})}addIntToInputSidePacket(a,b){X(this,b,c=>{this.i._addIntToInputSidePacket(a,c)})}addStringToInputSidePacket(a,b){X(this,b,c=>{X(this,a,d=>{this.i._addStringToInputSidePacket(d,c)})})}addProtoToInputSidePacket(a,b,c){X(this,c,d=>{X(this,b,e=>\n{const f=this.i._malloc(a.length);this.i.HEAPU8.set(a,f);this.i._addProtoToInputSidePacket(f,a.length,e,d);this.i._free(f)})})}attachBoolListener(a,b){Zf(this,a,b);X(this,a,c=>{this.i._attachBoolListener(c)})}attachBoolVectorListener(a,b){$f(this,a,b);X(this,a,c=>{this.i._attachBoolVectorListener(c)})}attachIntListener(a,b){Zf(this,a,b);X(this,a,c=>{this.i._attachIntListener(c)})}attachIntVectorListener(a,b){$f(this,a,b);X(this,a,c=>{this.i._attachIntVectorListener(c)})}attachDoubleListener(a,b){Zf(this,\na,b);X(this,a,c=>{this.i._attachDoubleListener(c)})}attachDoubleVectorListener(a,b){$f(this,a,b);X(this,a,c=>{this.i._attachDoubleVectorListener(c)})}attachFloatListener(a,b){Zf(this,a,b);X(this,a,c=>{this.i._attachFloatListener(c)})}attachFloatVectorListener(a,b){$f(this,a,b);X(this,a,c=>{this.i._attachFloatVectorListener(c)})}attachStringListener(a,b){Zf(this,a,b);X(this,a,c=>{this.i._attachStringListener(c)})}attachStringVectorListener(a,b){$f(this,a,b);X(this,a,c=>{this.i._attachStringVectorListener(c)})}attachProtoListener(a,\nb,c){Zf(this,a,b);X(this,a,d=>{this.i._attachProtoListener(d,c||!1)})}attachProtoVectorListener(a,b,c){$f(this,a,b);X(this,a,d=>{this.i._attachProtoVectorListener(d,c||!1)})}attachAudioListener(a,b,c){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?');Zf(this,a,(d,e)=>{d=new Float32Array(d.buffer,d.byteOffset,d.length/4);b(d,e)});X(this,a,d=>{this.i._attachAudioListener(d,c||!1)})}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph();\nthis.i.simpleListeners=void 0;this.i.emptyPacketListeners=void 0}});var bg=class extends ag{};async function cg(a,b,c){a=await Xf(a,b.wasmLoaderPath,b.assetLoaderPath,{locateFile(d){var e=b.wasmBinaryPath.toString();if(e.includes(d))return e;e=b.assetBinaryPath?.toString();return e?.includes(d)?e:d}});await a.A(c);return a}async function dg(a,b,c){return cg(a,b,c)}\nfunction eg(a,b){let c=H(a.baseOptions,Df,3);if(!c){var d=c=new Df,e=new ef;Rc(d,4,e)}\"delegate\"in b&&(\"GPU\"===b.delegate?(b=c,d=new bf,Rc(b,2,d)):(b=c,d=new ef,Rc(b,4,d)));I(a.baseOptions,Df,3,c)}function fg(a,b){const c=H(a.baseOptions,Ef,1)||new Ef;\"string\"===typeof b?(F(c,2,nc(b)),F(c,1)):b instanceof Uint8Array&&(F(c,1,bc(b,!1,!1)),F(c,2));I(a.baseOptions,Ef,1,c)}\nfunction gg(a,b){const c=b.baseOptions||{};if(b.baseOptions?.modelAssetBuffer&&b.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(H(a.baseOptions,Ef,1)?.g()||H(a.baseOptions,Ef,1)?.h()||b.baseOptions?.modelAssetBuffer||b.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");eg(a,c);if(c.modelAssetPath)return fetch(c.modelAssetPath.toString()).then(d=>{if(d.ok)return d.arrayBuffer();\nthrow Error(`Failed to fetch model: ${c.modelAssetPath} (${d.status})`);}).then(d=>{try{a.g.i.FS_unlink(\"/model.dat\")}catch{}a.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(d),!0,!1,!1);fg(a,\"/model.dat\");a.v()});fg(a,c.modelAssetBuffer);a.v();return Promise.resolve()}function hg(a){try{const b=a.j.length;if(1===b)throw Error(a.j[0].message);if(1<b)throw Error(\"Encountered multiple errors: \"+a.j.map(c=>c.message).join(\", \"));}finally{a.j=[]}}function ig(a,b){a.o=Math.max(a.o,b)}\nvar jg=class{constructor(a){this.g=a;this.j=[];this.o=0;this.g.setAutoRenderToScreen(!1)}setGraph(a,b){this.g.attachErrorListener((c,d)=>{this.j.push(Error(d))});this.g.Z();this.g.setGraph(a,b);hg(this)}finishProcessing(){this.g.finishProcessing();hg(this)}close(){this.g.closeGraph()}};jg.prototype.close=jg.prototype.close;export {jg as TaskRunner};async function kg(a,b,c){return dg(a,b,c)}var lg=class extends jg{constructor(){super(...arguments);this.u=48E3}aa(a){this.u=a}};lg.prototype.setDefaultSampleRate=lg.prototype.aa;export {lg as AudioTaskRunner};function mg(a,b=-1,c=\"\"){return{categories:a.map(d=>{var e=lc(E(d,1))??0??-1;const f=d.m,g=B(f),h=Fc(f,g,2),k=hc(h);null!=k&&k!==h&&G(f,g,2,k);return{index:e,score:k??0??0,categoryName:oc(E(d,3))??\"\"??\"\",displayName:oc(E(d,4))??\"\"??\"\"}}),headIndex:b,headName:c}}function ng(a){const b={classifications:Qc(a,Mf).map(c=>mg(H(c,Af,4)?.g()??[],lc(E(c,2))??0,oc(E(c,3))??\"\"))};null!=Vc(a)&&(b.timestampMs=Wc(Vc(a)));return b};function og(a,b){b.forEach(c=>{c=Pf(c);a.l.push(ng(c))})}\nvar Y=class extends lg{constructor(a,b){super(new bg(a,b));this.l=[];this.h=new Hf;a=new Ff;I(this.h,Ff,1,a)}get baseOptions(){return H(this.h,Ff,1)}set baseOptions(a){I(this.h,Ff,1,a)}A(a){var b=this.h,c=H(this.h,Cf,2);c=c?Cc(c):new Cf;void 0!==a.displayNamesLocale?F(c,1,nc(a.displayNamesLocale)):void 0===a.displayNamesLocale&&F(c,1);if(void 0!==a.maxResults){var d=a.maxResults;if(null!=d){if(\"number\"!==typeof d)throw a=Error(),gc(a,\"warning\"),a;if(!Number.isFinite(d)){const e=Error();gc(e,\"incident\");\nra(e)}}F(c,2,d)}else\"maxResults\"in a&&F(c,2);if(void 0!==a.scoreThreshold){d=a.scoreThreshold;if(null!=d&&\"number\"!==typeof d)throw Error(`Value of float/double field must be a number, found ${typeof d}: ${d}`);F(c,3,d)}else\"scoreThreshold\"in a&&F(c,3);void 0!==a.categoryAllowlist?Ic(c,4,a.categoryAllowlist):\"categoryAllowlist\"in a&&F(c,4);void 0!==a.categoryDenylist?Ic(c,5,a.categoryDenylist):\"categoryDenylist\"in a&&F(c,5);I(b,Cf,2,c);return gg(this,a)}W(a,b){return this.s(a,b??this.u,this.o+1)}s(a,\nb,c){this.g.addDoubleToStream(b,\"sample_rate\",c);this.g.addAudioToStreamWithShape(a,1,a.length,\"audio_in\",c);this.l=[];this.finishProcessing();return[...this.l]}v(){var a=new xf;J(a,10,\"audio_in\");J(a,10,\"sample_rate\");J(a,15,\"timestamped_classifications\");const b=new jf;Xc(b,If,this.h);const c=new Uc;Jc(c,nc(\"mediapipe.tasks.audio.audio_classifier.AudioClassifierGraph\"));J(c,3,\"AUDIO:audio_in\");J(c,3,\"SAMPLE_RATE:sample_rate\");J(c,4,\"TIMESTAMPED_CLASSIFICATIONS:timestamped_classifications\");c.A(b);\nTc(a,c);this.g.attachProtoVectorListener(\"timestamped_classifications\",(d,e)=>{og(this,d);ig(this,e)});this.g.attachEmptyPacketListener(\"timestamped_classifications\",d=>{ig(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Y.prototype.classify=Y.prototype.W;Y.prototype.setOptions=Y.prototype.A;Y.createFromModelPath=function(a,b){return dg(Y,a,{baseOptions:{modelAssetPath:b}})};Y.createFromModelBuffer=function(a,b){return kg(Y,a,{baseOptions:{modelAssetBuffer:b}})};\nY.createFromOptions=function(a,b){return kg(Y,a,b)};export {Y as AudioClassifier};function pg(a){return{embeddings:Qc(a,Sf).map(b=>{const c={headIndex:lc(E(b,3))??0??-1,headName:oc(E(b,4))??\"\"??\"\"};if(void 0!==Oc(b,Qf,Kc(b,1))){b=H(b,Qf,Kc(b,1)).m;var d=B(b);const e=d&2;let f=Gc(b,d,1,1),g=z(f);if(!(g&4)){Object.isFrozen(f)&&(g=0,f=x(f),G(b,d,1,f));let h=0,k=0;for(;h<f.length;h++){const l=hc(f[h]);null!=l&&(f[k++]=l)}k<h&&(f.length=k);g|=5;e&&(g|=34);A(f,g);g&2&&Object.freeze(f)}!e&&(g&2||Object.isFrozen(f))&&(f=x(f),Tb(f,5),G(b,d,1,f));c.floatEmbedding=f}else d=new Uint8Array(0),\nc.quantizedEmbedding=H(b,Rf,Kc(b,2))?.U()?.V()??d;return c}),timestampMs:Wc(Vc(a))}};var Z=class extends lg{constructor(a,b){super(new bg(a,b));this.l=[];this.h=new Kf;a=new Ff;I(this.h,Ff,1,a)}get baseOptions(){return H(this.h,Ff,1)}set baseOptions(a){I(this.h,Ff,1,a)}A(a){var b=this.h,c=H(this.h,Jf,2);c=c?Cc(c):new Jf;void 0!==a.l2Normalize?F(c,1,ic(a.l2Normalize)):\"l2Normalize\"in a&&F(c,1);void 0!==a.quantize?F(c,2,ic(a.quantize)):\"quantize\"in a&&F(c,2);I(b,Jf,2,c);return gg(this,a)}X(a,b){return this.s(a,b??this.u,this.o+1)}s(a,b,c){this.g.addDoubleToStream(b,\"sample_rate\",c);\nthis.g.addAudioToStreamWithShape(a,1,a.length,\"audio_in\",c);this.l=[];this.finishProcessing();return this.l}v(){var a=new xf;J(a,10,\"audio_in\");J(a,10,\"sample_rate\");J(a,15,\"embeddings_out\");J(a,15,\"timestamped_embeddings_out\");const b=new jf;Xc(b,Lf,this.h);const c=new Uc;Jc(c,nc(\"mediapipe.tasks.audio.audio_embedder.AudioEmbedderGraph\"));J(c,3,\"AUDIO:audio_in\");J(c,3,\"SAMPLE_RATE:sample_rate\");J(c,4,\"EMBEDDINGS:embeddings_out\");J(c,4,\"TIMESTAMPED_EMBEDDINGS:timestamped_embeddings_out\");c.A(b);Tc(a,\nc);this.g.attachProtoListener(\"embeddings_out\",(d,e)=>{d=Vf(d);this.l.push(pg(d));ig(this,e)});this.g.attachEmptyPacketListener(\"embeddings_out\",d=>{ig(this,d)});this.g.attachProtoVectorListener(\"timestamped_embeddings_out\",(d,e)=>{for(const f of d)d=Vf(f),this.l.push(pg(d));ig(this,e)});this.g.attachEmptyPacketListener(\"timestamped_embeddings_out\",d=>{ig(this,d)});a=a.g();this.setGraph(new Uint8Array(a),!0)}};Z.prototype.embed=Z.prototype.X;Z.prototype.setOptions=Z.prototype.A;\nZ.createFromModelPath=function(a,b){return kg(Z,a,{baseOptions:{modelAssetPath:b}})};Z.createFromModelBuffer=function(a,b){return kg(Z,a,{baseOptions:{modelAssetBuffer:b}})};Z.createFromOptions=function(a,b){return kg(Z,a,b)};export {Z as AudioEmbedder};let qg;const rg=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function sg(){if(void 0===qg)try{await WebAssembly.instantiate(rg),qg=!0}catch{qg=!1}return qg}\nasync function tg(a,b){const c=await sg()?\"wasm_internal\":\"wasm_nosimd_internal\";b=b??\".\";return{wasmLoaderPath:Zd(`${encodeURIComponent(b)}/${encodeURIComponent(a)}_${encodeURIComponent(c)}.js`),wasmBinaryPath:Zd(`${encodeURIComponent(b)}/${encodeURIComponent(a)}_${encodeURIComponent(c)}.wasm`)}}var ug=class{};ug.forVisionTasks=function(a=\"\"){return tg(\"vision\",a)};ug.forTextTasks=function(a=\"\"){return tg(\"text\",a)};ug.forAudioTasks=function(a=\"\"){return tg(\"audio\",a)};ug.isSimdSupported=function(){return sg()};\nexport {ug as FilesetResolver};\n"],"names":["m","self","aa","a","b","c","call","apply","bind","arguments","ba","Error","length","d","Array","prototype","slice","e","unshift","ca","Function","toString","indexOf","ea","constructor","f","g","h","fa","n","captureStackTrace","this","stack","message","String","cause","ha","ia","fromCharCode","ja","ka","name","na","TextDecoder","oa","pa","TextEncoder","qa","encode","Uint8Array","charCodeAt","subarray","ra","setTimeout","sa","ta","ua","va","wa","ya","xa","za","navigator","Aa","brands","some","brand","p","userAgent","q","Ba","Ca","userAgentData","Da","split","Ea","Fa","Ga","Ha","Math","floor","k","l","charAt","t","test","Ja","Ia","concat","Ka","La","btoa","Ma","join","Na","Oa","_","Pa","Qa","replace","atob","Ra","Sa","Ta","Ua","Va","Wa","Xa","r","Ya","H","V","Za","$a","ab","bb","cb","buffer","B","isArray","ArrayBuffer","byteOffset","byteLength","db","eb","u","v","fb","abs","gb","hb","DataView","setFloat32","getUint32","ib","jb","kb","Number","BigInt","trunc","lb","I","j","o","mb","nb","ob","pb","qb","rb","sb","reset","s","NaN","Infinity","pow","tb","ub","vb","wb","xb","fatal","decode","push","yb","zb","Bb","Cb","Eb","Db","Fb","Hb","Gb","Ib","Jb","Kb","Lb","Nb","w","Ob","end","Pb","pop","Qb","Sb","x","y","Symbol","Tb","Object","defineProperties","value","configurable","writable","enumerable","Ub","z","isFrozen","A","Vb","Wb","Xb","Yb","Zb","cc","$b","ac","bc","dc","C","D","fc","qc","rc","ec","gc","__closure__error__context__984382","severity","hc","ic","kc","isFinite","lc","mc","nc","oc","pc","F","sc","tc","uc","max","xc","yc","zc","toJSON","vc","Ac","Bc","Cc","Dc","wc","Ec","E","Fc","G","Gc","freeze","Hc","Ic","Jc","Kc","Lc","Mc","Nc","Oc","Pc","M","Qc","Rc","Sc","Tc","Uc","Vc","Wc","J","Xc","K","Yc","assign","la","yd","ma","Zc","P","$c","ad","bd","cd","dd","ed","O","fd","gd","hd","id","jd","kd","ld","md","nd","od","pd","qd","rd","isNaN","L","sd","N","td","ud","vd","wd","xd","zd","Ad","setFloat64","Bd","Cd","Dd","Ed","Fd","Gd","Hd","Id","Q","R","S","T","U","Jd","Kd","parseInt","Ld","Md","defaultValue","Nd","Od","da","Pd","next","Qd","get","OffscreenCanvas","getContext","Rd","Td","Vd","Wd","Xd","Y","Yd","Zd","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","console","error","ae","fe","ce","cellpadding","cellspacing","colspan","frameborder","height","maxlength","nonce","role","rowspan","type","usemap","valign","width","de","contentType","toLowerCase","createElement","ee","document","he","ie","ke","le","set","me","ne","add","pe","oe","Promise","resolve","then","qe","setImmediate","Window","MessageChannel","window","postMessage","addEventListener","style","display","documentElement","appendChild","contentWindow","open","close","random","location","protocol","host","origin","data","port1","onmessage","port2","ge","se","$goog_Thenable","W","te","ue","ve","we","ze","Ae","Be","Ce","De","TypeError","Ee","ye","He","Fe","Ge","xe","cancel","Ie","Le","Me","Ke","Ne","Oe","Qe","Je","Pe","Re","clearTimeout","shift","Se","Te","Ue","timeout","Ve","We","onload","onreadystatechange","readyState","onerror","hasOwnProperty","Ud","attributes","charset","Sd","cssText","className","htmlFor","setAttribute","lastIndexOf","be","ownerDocument","defaultView","querySelector","getAttribute","src","$d","getElementsByTagName","Xe","tagName","parentNode","removeChild","code","Ye","encodeURIComponent","Ze","$e","af","bf","super","cf","df","ef","ff","gf","hf","jf","kf","lf","mf","nf","pf","qf","rf","sf","tf","uf","vf","wf","xf","of","yf","zf","Af","Bf","Cf","Df","Ef","Ff","Gf","Hf","If","Jf","Kf","Lf","Mf","Nf","Of","Pf","Qf","Rf","Sf","Tf","Uf","Vf","async","Wf","importScripts","X","i","stringToNewUTF8","_free","Yf","Uint32Array","_malloc","HEAPU32","Zf","simpleListeners","$f","ag","Z","_registerModelResourcesGraphService","_addIntToInputStream","canvas","includes","warn","fetch","arrayBuffer","endsWith","setGraph","setGraphFromString","HEAPU8","_changeBinaryGraph","_changeTextGraph","configureAudio","_configureAudio","setAutoResizeCanvas","setAutoRenderToScreen","_setAutoRenderToScreen","setGpuBufferVerticalFlip","gpuOriginForWebTexturesIsBottomLeft","attachErrorListener","errorListener","attachEmptyPacketListener","emptyPacketListeners","addAudioToStream","addAudioToStreamWithShape","HEAPF32","_addAudioToInputStream","addGpuBufferToStream","_bindTextureToStream","_bindTextureToCanvas","pixelStorei","UNPACK_FLIP_Y_WEBGL","texImage2D","TEXTURE_2D","RGBA","UNSIGNED_BYTE","videoWidth","videoHeight","naturalWidth","naturalHeight","_addBoundTextureToStream","addBoolToStream","_addBoolToInputStream","addDoubleToStream","_addDoubleToInputStream","addFloatToStream","_addFloatToInputStream","addIntToStream","addStringToStream","_addStringToInputStream","addStringRecordToStream","keys","values","_addFlatHashMapToInputStream","addProtoToStream","_addProtoToInputStream","addEmptyPacketToStream","_addEmptyPacketToInputStream","addBoolToInputSidePacket","_addBoolToInputSidePacket","addDoubleToInputSidePacket","_addDoubleToInputSidePacket","addFloatToInputSidePacket","_addFloatToInputSidePacket","addIntToInputSidePacket","_addIntToInputSidePacket","addStringToInputSidePacket","_addStringToInputSidePacket","addProtoToInputSidePacket","_addProtoToInputSidePacket","attachBoolListener","_attachBoolListener","attachBoolVectorListener","_attachBoolVectorListener","attachIntListener","_attachIntListener","attachIntVectorListener","_attachIntVectorListener","attachDoubleListener","_attachDoubleListener","attachDoubleVectorListener","_attachDoubleVectorListener","attachFloatListener","_attachFloatListener","attachFloatVectorListener","_attachFloatVectorListener","attachStringListener","_attachStringListener","attachStringVectorListener","_attachStringVectorListener","attachProtoListener","_attachProtoListener","attachProtoVectorListener","_attachProtoVectorListener","attachAudioListener","_attachAudioListener","Float32Array","finishProcessing","_waitUntilIdle","closeGraph","_closeGraph","bg","cg","ModuleFactory","Module","locateFile","mainScriptUrlOrBlob","Xf","wasmLoaderPath","assetLoaderPath","wasmBinaryPath","assetBinaryPath","dg","fg","baseOptions","gg","modelAssetBuffer","modelAssetPath","delegate","eg","ok","status","FS_unlink","FS_createDataFile","hg","map","ig","jg","kg","lg","ng","classifications","categories","index","score","categoryName","displayName","headIndex","headName","mg","timestampMs","setDefaultSampleRate","displayNamesLocale","maxResults","scoreThreshold","categoryAllowlist","categoryDenylist","forEach","og","pg","embeddings","floatEmbedding","quantizedEmbedding","classify","setOptions","createFromModelPath","createFromModelBuffer","createFromOptions","l2Normalize","quantize","qg","embed","rg","sg","WebAssembly","instantiate","tg","ug","forVisionTasks","forTextTasks","forAudioTasks","isSimdSupported"],"mappings":"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"}